方法重写规则:
1.子类重写的方法与父类的方法具有完全相同的类型+方法名称(参数)
2.子类重写的方法属性大于或者等于父类的方法
3.子类不能抛出币父类更大的异常
circle.class
1 public class Circle { 2 3 protected double radius; 4 5 public Circle(double r) { 6 radius=r; 7 } 8 9 public void setr(double radius){ 10 this.radius=radius;11 } 12 13 public double getr(){14 return radius;15 } 16 17 public double getarea() {18 return 3.14*radius*radius;19 }20 }
Cylinder.calss
public class Cylinder extends Circle { private double length; public Cylinder() { super(1); length=1; } public void setl(double length){ this.length=length; } public double getl(){ return length; } //子类方法对父类getarea方法的重写,获取圆柱表面积 public double getarea() { return super.getarea()*2+radius*2*3.14*length; //在父类中,radius是protected属性,可在子类中直接调用;如果属性为private,则通过getr()获取 } public double getv(){ return super.getarea()*length; //在子类的方法中使用super.被重写的父类方法对该方法进行调用 } }