多態(tài)是否適用于Java中的類屬性?我知道當(dāng)使用父類引用來引用子類對(duì)象時(shí),OOP中多態(tài)性的常見用法是這樣的:Animal animal = new Animal();Animal dog = new Dog();我知道多態(tài)性適用于類方法,但它是否也適用于類屬性?我嘗試用這個(gè)小例子來測(cè)試它:public class Main{
public static void main(String args[]){
Animal animal = new Animal();
Animal dog1 = new Dog();
Dog dog2 = new Dog();
System.out.println("Animal object name: " + animal.name);
System.out.println("Dog1 object name: "+dog1.name);
System.out.println("Dog2 object name: " + dog2.name);
animal.print();
dog1.print();
dog2.print();
}}class Animal{
String name = "Animal";
public void print(){
System.out.println("I am an: "+name);
}}class Dog extends Animal{
String name = "Dog";
public void print(){
System.out.println("I am a: "+name);
}}這是輸出:Animal object name: AnimalDog1 object name: AnimalDog2 object name: DogI am an: AnimalI am a: DogI am a: Dog正如您所看到的(我希望很清楚),多態(tài)性與print()方法一起正常工作,但是對(duì)于class屬性“name”,它取決于引用變量。所以,我是對(duì)的嗎?多態(tài)性不適用于類屬性?
添加回答
舉報(bào)
0/150
提交
取消