继承

继承
可以基于已存在的类构造一个新类,继承已存在的类就是复用(继承)这些类的方法和域,并在此基础上,添加一些新的方法和域,以满足新的要求。
在JAVA中所有的继承都是公有继承,而没有C++中的私有继承和保护继承
有人认为super和this引用是类似的概念,,实际上,这样比较并不恰当,因为super不是一个对象的引用,不能将super赋给了另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字。在子类中可以增加域,增加方法或者覆盖超类的方法,然而绝对不能删除继承的任何域和方法。
JAVA中不支持多继承
在JAVA中,子类数组的引用可以转换成超类数组的引用,而不需要采用强制类型转换
在覆盖一个方法时,子类方法不能低于超类方法的可见性,特别是,如果超类方法是public,子类方法一定要声明为public
final类称为不被允许扩展的类,将方法或类声明成final主要目的是:确保他们不会再子类中改变语义
类型转换
例如
double x = 3.405; int nx = (int) x ; 将表达式X的值转换成整数类型,舍弃小数部分
在进行类型转换之前,先查看一下是否能够成功地转换,这个过程简单地使用instanceof运算符就可以实现,但是在一班情况下,应该尽量少使用类型转换和instanceof运算符。
继承设计的技巧
1将公共操作和域放在超类
2不要使用受保护的域(protect机制并不能带来更好的保护,原因是:1:子类集合是无限制的,任何一个人都能由某个类派生出一个子类,并编写代码以直接访问protected的实例域,从而破坏封性 2:在同一个包中的所有类都可以访问protected域,而不管它是否为这个类的子类)
3使用继承实现“is-a”关系
4除非所有继承的方法都有意义,否则不要使用继承
5在覆盖方法时,不要改变预期的行为
6使用多态,而非类型信息
7不要过多地使用反射
待补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值