Java基础——抽象类

2017-03-11  本文已影响0人  BeYanJin

参考资料

《Java语言程序设计(基础篇)》—— Y.Daniel Liang

前言

本人菜鸟,入IT只为当鼓励师。本编文章旨在对 Java 中的 抽象类 做总结

一、抽象类

1. 定义一个抽象类

// 抽象类
public abstract class Shape {
    // 可以有属性
    // private String color;

    // 可以有普通方法
    /* public void setColor(String color) {
              this.color = color;
        }   
        public String getColor() {
              return this.color;
        }     
    */

    // 抽象方法
    public abstract double getArea();    // 获取面积
    public abstract double getPan();     // 获取周长
    public abstract void printShape();     // 获取周长
}

上方代码中的Shape类是一个抽象类,它表示一种形状。它拥有两个抽象方法, 分别为 getArea()getPan()

2. 继承抽象类并实现其抽象方法

public abstract class ShapeTest extends Shape{
    public abstract double getArea();    // 获取面积
    public abstract double getPan();     // 获取周长
    public void printShape() {           // 输出形状信息
        System.out.println("我实现了Shape类的printShape方法,但没有实现其他两个方法,所以我还是一个抽象类");
    }
}   

// 正方形类
public class Square extends Shape {
    private double len;    // 边长
    protected Square(double len) {
        this.len = len;
    }
    public double getArea() {
        return len * len;    // 边长 × 边长
    }
    public double getPan() {
        return 4 * len;      // 4 × 边长
    }
    public void printShape() {
        System.out.println("正方形");
    }
}

// 圆形类   
public class Circle extends Shape {
    private double r;    // 半径
    protected Circle (double r) {
        this.r = r;
    }
    public double getArea() {
        return Math.PI * r * r;    // π × 半径^2
    }
    public double getPan() {
        return Math.PI*r*2;   // 2 × π × 半径
    }
    public void printShape() {
        System.out.println("圆形");
    }
}

二、要点

三、抽象类的好处

四、抽象类的UML图形记号

在UML图形记号中,抽象类和抽象方法的名字用斜体表示。


五、示例:抽象的Number类

上一篇 下一篇

猜你喜欢

热点阅读