作用:
继承的出现减少了代码冗余,提高了代码的复用性。
继承的出现,更有利于功能的扩展。
继承的出现让类与类之间产生了关系,提供了多态的前提。
注意:
不要仅为了获取其他类中某个功能而去继承
子类继承了父类,就继承了父类的方法和属性。
在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和 方法。
在Java 中,继承的关键字用的是“extends”,即子类不是父类的子集, 而是对父类的“扩展”。
关于继承的规则:
子类不能直接访问父类中私有的(private)的成员变量和方法。
Java只支持单继承和多层继承,不允许多重继承
一个子类只能有一个父类
一个父类可以派生出多个子类
练习:
根据下图实现类。在CylinderTest类中创建Cylinder类的对象,设置圆 柱的底面半径和高,并输出圆柱的体积。
圆类:
package KindObject;
//圆
public class Circle {
double radius;
public Circle(){
this.radius=1;
}
public Circle(double radius){
super();
this.radius=radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double findArea(){
return 3.14*radius*radius;
}
}
继承圆,圆柱类:
package KindObject;
public class Cylinder extends Circle {
double length;
public Cylinder(){
this.length=1;
}
public Cylinder(double radius,double length){
// super跟this用法相似,指向父类,下一节会讲到
super(radius);
this.length=length;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double findVolume(){
return 3.14*radius*radius*length;
}
}
测试类:
package KindObject; //测试类 public class Test { public static void main(String[] args) { Cylinder ne = new Cylinder(4,5.6); // 圆的面积 System.out.println("圆的面积是:"+ne.findArea()); // 圆柱的面积 System.out.println("圆柱的面积:"+ne.findVolume()); } }