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 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,

  • 提高了类之间的耦合性

 

posted @ 2019-03-17 17:03  云林  阅读(192)  评论(0)    收藏  举报