Java教程 - Java抽象类
抽象类是抽象的想法或概念。例如,int数据类型是一个具体的数据类型,double是另一个数据类型具体数据类型。 他们都是数字。 这里数字是一个抽象的概念。形状是另一个例子。 我们可以有备用,矩形或三角形或圆形。 他们都是具体的,而形状是一个抽象类。
在Java中,我们使用抽象类来定义抽象概念。 抽象概念必须有一些抽象方面。 例如,抽象概念是Shape,而抽象方面是如何计算面积。抽象概念在Java中变成抽象类,抽象方面成为抽象方法。
语法
您可以要求通过指定子类来重写某些方法抽象类型修饰符。要声明抽象方法,请使用以下一般形式:
abstract type name(parameter-list);
抽象方法没有方法体。任何包含一个或多个抽象方法的类也必须声明为抽象。
abstract class MyAbstractClass{ abstract type name(parameter-list); }
这里是一个抽象类,后面是一个实现其抽象方法的类。
abstract class MyAbstractClass { abstract void callme(); void callmetoo() { System.out.println("This is a concrete method."); } } class B extends MyAbstractClass { void callme() { System.out.println("B"s implementation of callme."); } } public class Main { public static void main(String args[]) { B b = new B(); b.callme(); b.callmetoo(); } }
输出:
例子
下面的代码将 Shape
类定义为abstract。 shape 类有抽象方法称为area()。 Rectangle
类扩展抽象类 Shape
并为其自身实现area()方法。
abstract class Shape { double height; double width; Shape(double a, double b) { height = a; width = b; } abstract double area(); } class Rectangle extends Shape{ Rectangle(double a, double b) { super(a, b); } double area() { System.out.println("Inside Area for Rectangle."); return height * width; } } class Triangle extends Shape{ Triangle(double a, double b) { super(a, b); } double area() { System.out.println("Inside Area for Triangle."); return height * width / 2; } } public class Main { public static void main(String args[]) { Rectangle r = new Rectangle(10, 5); Triangle t = new Triangle(10, 8); Shape figref; figref = r; System.out.println("Area is " + figref.area()); figref = t; System.out.println("Area is " + figref.area()); } }
输出: