abstract--抽象关键字
由abstract修饰的方法为抽象方法
抽象方法只有方法的定义,没有方法的实现。没有方法体
public abstract void show();
由abstract修饰的类是抽象类
一个类如果包含抽象方法,那么一定是一个抽象类
抽象类中可以有抽象方法,也可以有非抽象方法
继承抽象类后必须实现抽象类中定义的所有抽象方法
不同的子类可以有不同的实现
抽象类不能被实例化
Shape类:
public abstract class Shape { public abstract void area();//抽象方法 public abstract void perimeter(); }
Circle类继承Shape类并实现图形类的抽象方法
public class Circle extends Shape { private static double pi = 3.14; private double r; public Cride(double r) { this.r = r; } @Override public void area() { System.out.println("圆的面积为:"+(pi * r * r)); } @Override public void perimeter() { System.out.println("圆的周长为:"+(pi * r * 2)); } }
Square类继承Shape类并实现图形类的抽象方法
public class Square extends Shape{ private double h; private double l; public Square(double h, double l) { this.h = h; this.l = l; } public void area(){ System.out.println("正方形的面积为:"+(h*l)); } @Override public void perimeter() { System.out.println("正方形的周长为:"+(2*(h+l))); } }
测试类:
public static void main(String[] args) { Shape Circle = new cride(8);//父类的应用指向子类对象 Circle.area();//圆的面积 Circle.perimeter();//圆的周长 Circle.show(); Shape square = new Square(5, 10);//父类的应用指向子类对象 square.area();//正方形的面积 square.perimeter();//正方形的周长 } /* 输出结果: 圆的面积为:200.96 圆的周长为:50.24 正方形的面积为:50.0 正方形的周长为:30.0 */