父类的引用指向子类对象 怎么理解呢 这和一般的 Dog obj2 = new Dog(); (我习惯了这样写法),有什么么实际意义和应用呢
Aninal animal=new Animal();
Aniamal animal=new Dog();
Dog dog=new Dog();
这三种的意思你应该都清楚,不是所有的东西的存在都一定会有什么实际的意义和应用,如果非得说的话,我只能说增加了编程代码的多样性,你可以有多重选择,但相比起来其实优势差不多,只是创建的时候意义不一样,这就是多样性。
这里是java三种多态中的 引用多态,与Dog obj2 = new Dog(); 是完全不同的,假如子类中重写了父类中的方法show(或者没有写)
Animal obj2 = new Dog();这里是父类的引用指向子类对象,这样的话子类就可的话我们利用
obj2.show();就可以调用子类中重写的方法show(如果没有重写,则调用继承的方法show),但是子类中特有的方法是不能调用的
另一个Animal obj2 = new Aniaml();也就是你说的Dog obj2 = new Dog();这里是父类的引用指向父类对象,利用obj2.父类的中的方法,就可以调用父类中的所有方法
希望你多理解,在看下那一的视频,希望可以帮到你
鄙人认为:Animal obj2 = new Dog这样的写法主要是为了以后接口的创建,便于设计模式的实现,以及代码的复用
java的多态,你可以多搜一下资料慢慢体会一下,刚刚开始的确有点难