这样就可以把每天学到的好东西都记录下来了
/**
* 当一个类继承了一个类同时还实现了两个接口.
* 巧合的是,这个父类和两个接口他们3个都有同名的变量.
* 这时我们就应该用super.变量名和接口名.变量名来区分他们3个的不同调用
* this.变量名和直接使用变量名都是不可以的(会有歧义).除非你在这个类中重新定义了这个变量
*
* 为什么一个java类一定要先extends再implements?
* 1.
* 最终的不能再被赋值,这也可能是为什么继承和实现都有的时候为什么继承写在前面了
* 2.
* interface A {
void fa();
}
class C implements A{
void fa() {...}
}
假如现在有类D,它需要实现接口A,也要继承类C,
当把extends放在前面,则类D会先继承C,再实现接口A,那么就不用再去实现fa()了,即
class D extends C implements A{
}
若将extends 放在implements后面,那就要实现fa()方法了,但又继承类C,类c中也可fa()方法,此时就会出现问题!
3.
只能继承一个类,却可以implements多个接口。处于不确定状态的一般写在后面。比如可变参数:
void test(intx,int ... sum){}。就不能写成void test(int ... sum,int x){} |
|