1.与继承有关的关键字
(1)final-用final修饰的类不能再派生子类,它已达到类层次中的最低层。
(2)abstract-用abstract修饰类或成员方法,表明被修饰的成分是抽象的。抽象方法只需给出原型说明,方法体是空的。含有抽象方法的类必须说明为抽象类。和final完全不同,抽象类一定要派生子类,父类中的抽象方法可以在子类中实现,也可以在子类中继续说明为抽象,然后在下一层的子类中实现。
抽象类示例:
abstract class Shape {
abstract void draw();
Point position;
Shape(Point p){
position = p;
}
}
abstract class Round extends Shape{
final double pi = 3.14159265;
Round(Point p) {
super(p);
}
abstract void draw();
abstract double area();
}
class Circle extends Round {
int radius;
Circle(Point p,int radius) {
super(p);
this.radius = radius;
}
@Override
void draw() {
drawCicle(position);
}
@Override
double area() {
return pi*radius*radius;
}
//具体的业务
private void drawCicle(Point position) {
}
}
上述示例中Shape定义了抽象方法draw(),在Shape的子类Round中,draw()继续定义为抽象的,在它的子类Circle中,才实现draw()方法。