상위 클래스에 속성 만 있고 "메소드 없음"이 있고 여러 자식 클래스가 코드 재사용 가능성을 위해 상위 클래스를 확장하는 시나리오를 고려하십시오.다형성은 값 객체에 적용됩니까?
이러한 개체는 본질적으로 값 개체이고 자식 값 개체가 부모 변수를 입력으로 받아들이는 메서드에서 전달되면 자식 개체가 재정의 할 동작이 없을 때 자식 개체도 여전히 다형 적 동작이라고할까요? 예를 들어 :
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
}
}
당신은 여전히 전혀 행동이없는 경우에도 다형성 (polymorphic) 위의 호출 것인가?
당신을 무엇을 속성에 의한 의미? 멤버 변수? 그렇다면 멤버 변수는 다형성이 아닙니다. –
트리가 숲에 떨어졌을 때 여기에 아무도 없지만 여전히 소리가 나나요? 나는 그것이 할 것이라고 말할 것이다. –
몇 가지 예제 코드를 사용하면 질문을 훨씬 쉽게 이해할 수 있습니다. – lupz