A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 啷个里个郞 于 2012-5-12 00:30 编辑

谢谢   

5 个回复

倒序浏览
例如:
1覆盖方法时(引致张孝祥老师的视频)
object的equals
public boolean equals(Object obj)
如果你覆盖时不是一模一样,就会出现你认为是调用自己的方法,但却调用了父的方法。(因为这叫重载)
2当父类的引用指向子类对象,如果父类没有该方法就会报错,
当子类和父类同时有一个相同属性时,这时调用就看引用类型。
当子类和父类同时有一个相同方法时,这时调用就看对象类型。
不能为了某个功能而乱认爹,一定要有关系(就像现实生活)。
接口一般是定义功能的

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
在使用多态的时候稍微注意一下类型之间的转换 :向上转型  父类 父类对象=new 子类()
                                                                        向下转型   子类 子类对象=(子类)父类对象;
就是涉及到设计模式 比如工厂设计模式中传进去一个父类类型的对象在方法中的判断和转换

点评

谢谢  发表于 2012-5-12 00:27

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
java中多态的体现就是父类的引用指向子类对象,进而调用子类重写父类的方法。首先多太存在的前提有:(1)类与类(或接口)要有继承(或实现)关系。(2)一定要有方法的重写。(3)一定要有父类或者接口的引用指向子类的对象。其次要注意的是,通过多态的方式父类的引用只能访问子类从父类所继承过来的成员,不能访问子类所特有的成员。比如:父类有一个方法fun(),而子类除了具有重写fun()方法外,还一个方法g(),此时父类的引用就不能访问g()方法。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
zlghff 发表于 2012-5-11 18:23
例如:
1覆盖方法时(引致张孝祥老师的视频)
object的equals

当子类和父类同时有一个相同属性时,这时调用就看引用类型。
当子类和父类同时有一个相同方法时,这时调用就看对象类型。

举例说明
回复 使用道具 举报
啷个里个郞 发表于 2012-5-11 22:17
当子类和父类同时有一个相同属性时,这时调用就看引用类型。
当子类和父类同时有一个相同方法时,这时调 ...

当子类和父类同时有一个相同属性时,这时调用就看引用类型。
例如:
fu{
int num=0;
void run()
}
zi extends fu{
int num=2;
void run()
}
Fu x=new zi();
当调用x.num时,就是父类中的属性
当调用x.run()时,就是字类中的方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马