java继承和多态
java继承和多态(一)
2019-03-17-17:04:04 云林
一、继承的概念
就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
在Java之中,如果要实现继承的关系,通过 extends 关键字可以申明一个类是从另外一个类继承而来的,
一般形式如下:
class 子类 extends 父类 {
}
实现实例:
父类: 父类又被称为超类(Super Class);
//父类
public class Shape { public String type; public String getType() { return type; } public void setType(String type) { this.type = type; } }
子类:子类又被称为派生类;
子类一:圆
//子类:子类又被称为派生类; 父类又被称为超类(Super Class)
//子类一:圆
public class Circle extends Shape{ double radius;//定义自己的成员变量 public double getRadius() {//定义自己的成员方法 return radius; } public void setRadius(double radius) { this.radius = radius; } public double getArea() { double area=Math.PI*radius*radius;//计算圆的面积 return Math.rint(area); } public double getPerimeter() { double perimeter=Math.PI*radius*2;//计算圆的周长 return Math.rint(perimeter); } }
子类二:矩形
//子类二:矩形 public class Rectangular extends Shape{ int width;//定义自己的成员变量 int height; public int getWidth() { return width; } public void setWidth(int width) { this.width = width; } public int getHeight() { return height; } public void setHeight(int height) { this.height = height; } public int getArea() { int area=width*height;//计算矩形的面积 return area; } public int getPerimeter() { int perimeter=(width+height)*2;//计算矩形的周长 return perimeter; } }
TestCircleDemo类:
public class TestCircleDemo{ public static void main(String[] args) { // TODO Auto-generated method stub Circle circle=new Circle(); circle.setType("圆形"); //调用超类Shape的方法 circle.setRadius(3);//调用子类Circle的方法 System.out.println("图形的类别是:"+circle.getType()); System.out.println("周长:"+circle.getPerimeter()); System.out.println("面积:"+circle.getArea()); } }
运行结果:
图形的类别是:圆形 周长:19.0 面积:28.0
TestRectangularDemo类:
public class TestRectangularDemo { public static void main(String[] args) { // TODO Auto-generated method stub Rectangular rectangular=new Rectangular(); rectangular.setType("矩形"); //调用超类Shape的方法 rectangular.setHeight(3);//调用子类Rectangular的方法 rectangular.setWidth(4); System.out.println("图形的类别是:"+rectangular.getType()); System.out.println("周长:"+rectangular.getPerimeter()); System.out.println("面积:"+rectangular.getArea()); } }
运行结果:
图形的类别是:矩形 周长:14 面积:12
注意:
Java 不支持多继承,但支持多重继承。
二、继承的特性
-
子类拥有父类非 private 的属性、方法。
-
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
-
子类可以用自己的方式实现父类的方法。
-
Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,
- 提高了类之间的耦合性

浙公网安备 33010602011771号