实现接口vs继承类
java的继承是单继承,也就是一个类最多只能有一个父类,这种单继承的机制可保证类的纯洁性,比c++中的多继承机制简洁,但是不可否认,对子类功能的扩展有一定影响,所以我们认为:(1)实现接口可以看作是对继承的一种补充,还有一点,继承是层级式的,不太灵活。(2)实现接口可在不打破继承关系的前提下,对某个类功能扩展,非常灵活。
1、前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现,又叫做静态绑定,比如static方法和final方法,注意,这里也包括private方法,因为它是隐式final的。
2、后期绑定:在运行时根据对象的类型进行绑定,由方法调用机制实现,因此又叫做动态绑定,或者运行时绑定,除了前期绑定外的所有方法都属于后期绑定。
final——概念
final 可以修饰变量或者方法。
在某些情况下,程序员可能有以下需求:
(1)当不希望父类的某个方法被子类覆盖时,可以用final关键字修饰
(2)当不希望类的某个变量的值被修改,可以用final修饰。如果一个变量是final,一定要赋初值,否则编译不过去。
(3)当不希望类被继承时,可以用final修饰。
final——注意事项:
(1)final修饰的变量又叫常量,一般用xx_xx_xx来命名。
(2)final修饰的变量在定义时,必须赋值,并且以后不能再赋值。
final——什么时候用:
(1)因为安全的考虑,类的某个方法不允许修改。
(2)类不会被其它的类继承。
(3)某些变量值是固定不变的,比如圆周率