1.super
super操作被隐藏的成员变量和方法,子类一旦隐藏继承的成员变量,那么子类创建的对象就不在拥有该变量,该变量就归super关键字所有,同样子类一旦隐藏了继承的方法,妈妈子类创建的对象就不能调用被隐藏的方法,该方法的调用有关键字super负责。
示例:
class A{
int A ;
public void go(){
System.out.print("小牛向前跑%d步",A);
}
}
class B extends A{
double A;
public void go(){
super.A = 100 - A;
super.go();
System.out.print("小牛还差%f跑到了妈妈身旁",(double)A-super.A);
}
}
public class Example{
public static void main(String [] args){
System.out.print("一百步的距离,小牛还差多少步跑到了妈妈身旁?");
B b = new B();
b.A = 10;
b.go();//小牛向前跑10 步
}
}
使用super调用父类的构造方法,也能把我们更好的继承父类并成问我们自己目标的类。
2.final
①:final类
final类不能被继承,不能有子类。常处以安全性的考虑,将一些类修饰为final类。例如java提供的String类,对于编译器和解释器的正常工作有重要作用,对他不能轻易改变,所以被修饰为final类
②:final方法
final类修饰父类中的一个方法,那么这个方法不允许子类重写,也就是说,不允许子类隐藏可以继承的final方法(老老实实继承,不许做任何篡改)。
③:final常量
常量在声明是没有默认值,所以在声明是必须指定该常量的值,而且不能再发生变化。