В этой ситуации у меня есть доступ к переопределенным/дополнительным методам CarSubClass?Возвращаемый подкласс вместо класса
public Car getCar(){
CarSubClass carSub = new CarSubClass();
return carSub;
}
Update:
Автомобиль имеет подклассы SubClass1, SubClass2, SubClass3.
getCar() может возвращать SubClass1, SubClass2, или SubClass3.
Могу ли я сделать это ?:
Car car = getCar();
switch(car.getType()){//getType() returns a byte
case SubClass1:
SubClass1 car1 = (SubClass1)car;
break;
case SubClass2:
SubClass car2 = (SubClass2)car;
break;
case SubClass3:
SubClass3 car3 =(SubClass3)car;
break;
default: //don't do anything
}
Что с в коммутаторе, от которого вы получите тип? – arjacsoh
Частое понижение частоты иногда является показателем плохого дизайна ООП. Возможно, вам захочется проверить обсуждения предпочтительного состава над наследованием, например. http://www.artima.com/lejava/articles/designprinciples4.html – Will
Спасибо, я прочитаю – benzabill