可以在java中強制上鑄類型?看例子。強制Java上鑄類
public class Animal{}
public class Dog extends Animal{}
Dog dog = new Dog();
Animal test = dog;
我有什麼:(test instanceof Dog)
和(test instanceof Animal)
返回True。
我想要什麼:(test instanceof Dog)
==虛假和(test instanceof Animal)
==真
有辦法迫使測試是唯一一種動物?或者唯一的辦法是創建一個動物通過狗的構造函數?我試圖避免創建一個構造函數,因爲我有一個複雜的對象,有很多getters/setter。
謝謝。
底層對象**是**狗''。沒有任何鑄件可以改變這一點。如果你想要一個**只是**的對象,你需要以某種方式創建一個新的動物。 –
如果你的設計依賴於它,它可能會被破壞。向我們展示一個實際的用例,而不是一個希望獲得不存在的語言功能的學術問題。 – millimoose
我認爲@OliCharlesworth明白了。看起來像是不可能做到我想要的而不創建Animal的新實例。請回答這個問題,我可以給你正確的答案。 – afzimmermann