考慮一個情景,當一個父類只有屬性和「沒有方法」和幾個子類正在擴展父類的代碼重用性。多態性是否適用於值對象?
這些對象本質上是值對象,如果在接受父變量的方法中傳入子值對象作爲輸入,當孩子沒有重載行爲時,仍然會將其稱爲多態行爲嗎?例如:
class Parent { int value = 100; /* doesn't have any method to be overriden */ }
class Child1 extends Parent {};
class Child2 extends Parent {};
public class Test {
public static void main(String[] args) {
Parent obj1 = new Child1();
doSomething(obj1);
Parent obj2 = new Child2();
doSomething(obj2);
Child1 obj3 = new Child1();
doSomething(obj3);
Child2 obj4 = new Child2();
doSomething(obj4);
}
static void doSomething(Parent p) {
// some code
}
}
即使根本沒有任何行爲,您是否仍然會調用多態行爲?
你這是什麼是指屬性?成員變量?如果是這樣,否,成員變量不是多態的。 –
如果一棵樹落在森林中,但沒有人在這裏,它是否仍然發出聲音?我會說它的確如此。 –
一些示例代碼會讓您更容易理解您的問題。 – lupz