为了账号安全,请及时绑定邮箱和手机立即绑定

Animal obj2 = new Dog();

父类的引用指向子类对象 怎么理解呢   这和一般的  Dog obj2 = new Dog(); (我习惯了这样写法),有什么么实际意义和应用呢 

正在回答

4 回答

Aninal animal=new Animal();

Aniamal animal=new Dog();

Dog dog=new Dog();

这三种的意思你应该都清楚,不是所有的东西的存在都一定会有什么实际的意义和应用,如果非得说的话,我只能说增加了编程代码的多样性,你可以有多重选择,但相比起来其实优势差不多,只是创建的时候意义不一样,这就是多样性。

0 回复 有任何疑惑可以回复我~


这里是java三种多态中的 引用多态,与Dog obj2 = new Dog(); 是完全不同的,假如子类中重写了父类中的方法show(或者没有写)

Animal obj2 = new Dog();这里是父类的引用指向子类对象,这样的话子类就可的话我们利用

obj2.show();就可以调用子类中重写的方法show(如果没有重写,则调用继承的方法show),但是子类中特有的方法是不能调用的


另一个Animal obj2 = new Aniaml();也就是你说的Dog obj2 = new Dog();这里是父类的引用指向父类对象,利用obj2.父类的中的方法,就可以调用父类中的所有方法

希望你多理解,在看下那一的视频,希望可以帮到你



0 回复 有任何疑惑可以回复我~
#1

DH111

Animal obj2 = new Animal();跟Dog obj2 = new Dog();怎么相同呢,按你所举的例子:假如子类中重写了父类中的方法show(或者没有写);那么我用Dog obj2 = new Dog();不是一样可以通过obj2.show();调用子类中重写后的方法吗;所以才如帖主所问:Animal obj2 = new Dog();有什么么实际意义和应用呢 ?同求,望大神解疑。
2015-07-31 回复 有任何疑惑可以回复我~

鄙人认为:Animal obj2 = new Dog这样的写法主要是为了以后接口的创建,便于设计模式的实现,以及代码的复用

0 回复 有任何疑惑可以回复我~

java的多态,你可以多搜一下资料慢慢体会一下,刚刚开始的确有点难

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

Animal obj2 = new Dog();

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信