继承 方法重写 组合(尚学堂视频学习总结_003)
2016-02-20 18:44
316 查看
类中只有单继承
老祖宗:Object类,间接或直接继承于此类
子类继承父类的属性和方法,除了父类的构造方法
普通方法默认都有两个参数:this ,super;
new子类对象时,内存中普通方法是用super指向父类对象
构造方法:如果要继承父类的,第一句默认是super() ??? 也是往上一层层
普通方法:对象调用时在当前类找,如果没有,则由隐式参数找到上一级(父类)一直往上找
【override】
跟方法重载overload没有任何关系
方法重写 --> 类的继承关系 --> 方法名、参数、返回类型一样!
权限:重写的方法不能把权限范围缩小了,这样会影响父类的方法范围?!
如原来父类是public,子类却变成protect!错的!
异常:子类还不能比父类抛出更多的异常!
【构造方法与继承】
区分大小写。再次强调方法名与类名必须相同,并且没有返回值
场景:
父类:无参构造方法,有参构造方法
子类:同上
结果:
new子类无参:依次调用父类无参,子类无参
new子类有参:依次调用父类无参,子类有参
如果注释掉父类的无参构造方法,则子类无参构造方法编译时便会出错了。
那是因为JVM调用子类无参构造方法时,只要父类显示定义了构造方法,则会去父类找无参构造方法。
找不到,因此报错。
解决方法:在子类构造方法中:第一句加上super(参数); 这里参数根据父类已写明的构造方法来。
如果父类中没有无参构造方法,子类无参构造方法没有参数,则上面super(参数),可以传递一个常量即可达到调用父类有参构造方法的目的。
【组合与继承】
都可以代码复用
组合:
子类内:父类作为子类的属性,先在子类new好,后面子类方法中可直接使用该父类对象
类中只有单继承
老祖宗:Object类,间接或直接继承于此类
子类继承父类的属性和方法,除了父类的构造方法
普通方法默认都有两个参数:this ,super;
new子类对象时,内存中普通方法是用super指向父类对象
构造方法:如果要继承父类的,第一句默认是super() ??? 也是往上一层层
普通方法:对象调用时在当前类找,如果没有,则由隐式参数找到上一级(父类)一直往上找
【override】
跟方法重载overload没有任何关系
方法重写 --> 类的继承关系 --> 方法名、参数、返回类型一样!
权限:重写的方法不能把权限范围缩小了,这样会影响父类的方法范围?!
如原来父类是public,子类却变成protect!错的!
异常:子类还不能比父类抛出更多的异常!
【构造方法与继承】
区分大小写。再次强调方法名与类名必须相同,并且没有返回值
场景:
父类:无参构造方法,有参构造方法
子类:同上
结果:
new子类无参:依次调用父类无参,子类无参
new子类有参:依次调用父类无参,子类有参
如果注释掉父类的无参构造方法,则子类无参构造方法编译时便会出错了。
那是因为JVM调用子类无参构造方法时,只要父类显示定义了构造方法,则会去父类找无参构造方法。
找不到,因此报错。
解决方法:在子类构造方法中:第一句加上super(参数); 这里参数根据父类已写明的构造方法来。
如果父类中没有无参构造方法,子类无参构造方法没有参数,则上面super(参数),可以传递一个常量即可达到调用父类有参构造方法的目的。
人家结论:子类如果有多个构造函数的时候,父类要么没有构造函数, 让编译器自动产生,那么在执行子类构造函数之前先执行编 译器自动产生的父类的缺省构造函数;要么至少要有一个显 式的缺省构造函数可以让子类的构造函数调用。 http://bbs.csdn.net/topics/100047866 |
都可以代码复用
组合:
子类内:父类作为子类的属性,先在子类new好,后面子类方法中可直接使用该父类对象
相关文章推荐
- 漫谈“推荐系统”
- poj 2096 概率dp
- Oracle查询隐式类型转换不走索引
- jstack_查看当前进程及所属线程执行情况
- Adobe Acrobat Pro 9破解
- POJ2406(next原理理解)
- CreateEvent共享事件对象(进程间共享)
- 登陆的想法
- 算法四自带类库源码(In)
- 面向对象与面向过程(尚学堂视频学习总结_001)
- 浅谈矩阵分解在推荐系统中的应用
- HDU 3641 Treasure Hunting(阶乘素因子分解+二分)
- 你迷茫的原因在于读书太少而想的太多!!!
- 避免循环引用
- 数据挖掘算法-矩阵分解在推荐系统中的应用
- 心路历程(五)-find work and find house
- ios动画效果
- HDU2675 数学 二分
- C/C++程序员应聘常见面试题剖析
- Spring AOP