final关键字
可以修饰类,成员变量,方法中的局部变量
final类:将类声明为final类,不能被继承,但一定要有值
final class A{。。。}
final方法:如果final修饰父类的一个方法,那么这个方法不允许被重写,既不可以隐藏(老老实实继承)
常量:final修饰成员变量或局部变量,则变为常量,因此在声明时必须制定常量值
对象的上转型对象
假设动物类animal是老虎类tiger的父类,当用子类创建一个对象,并把这个对象的引用当道父类的对象中时,则称对象a是对象t类的上转型对象(好比说 老虎是动物)
例如:
动物 a;
a = new 老虎();
或者
动物 a;
老虎 t = new 老虎();
a = t;
上转型对象的特点:
1.上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法
2.上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类继承或重写的实例方法
继承与多态
父类有多个子类,且子类都重写了父类的某个方法,将子类创建的对象的引用放到父类的对象中时,就得到了该对象的上转型对象。这个上转型对象在调用方法时就可能具有多种形态。
多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。
abstract类(抽象类)和abstract方法(抽象)
用关键字abstract修饰的类成为abstract类,例:
abstract class A{ 。。。}
用关键字abstract修饰的方法成为abstract方法(没有具体行为),例:
abstract int min (int x,int y);
abstract类中可以有abstract方法,也可以没有、
abstract类不能用new运算符创建对象
非抽象类是抽象类的子类时,必须重写父类的方法体(只能继承),去掉abstract方法的abstract修饰,并给出方法体。即不能用final和abstract同时修饰同一个方法或者类。如果抽象类是抽象类的子类时,可以重写父类的abstract方法,也可以继承。
abstract类的子类