抽象类:只有子类应该包含的方法(没有方法体的方法),没有具体实现的类。方法体的实现交给抽象类的子类,子类根据具体需要去实现。任何带有抽象方法的类都为抽象类,他只是对问题的抽象表示,不能完整地表示一个事物。
定义一个形状抽象类:
public abstract class Shape { public int width; public int length; public Shape(int width, int length) { this.length = length; this.width = width; } public Shape() { } public abstract double area(); }
定义Square类,继承抽象类,重写抽象方法:
public class Square extends Shape{ public Square(int width,int length){ super(width,length); } public double area() { return width*length; } }
定义Circle类,继承抽象类,重写抽象方法:
public class Circle extends Shape { public double radius; public Circle(double radius){ this.radius=radius; } public double area() { return radius*radius*Math.PI; } }
测试类:
public class Test { public static void main(String[] args) { Circle c=new Circle(1); System.out.println("圆的面积为"+c.area()); Square s=new Square(1,2); System.out.println("长方形的面积为"+s.area()); } }
结果:
抽象类的特点:
抽象类和方法都需要被abstract修饰。
抽象类不能创建对象,子类继承抽象类后可以实例化。
子类必须覆盖抽象类的所有抽象方发,否则,子类还是一个抽象类。
原文:https://www.cnblogs.com/zhai1997/p/11341468.html