抽象类(修饰符abstract)
两种类:具体类和抽象类
抽象方法:设计目的就是让子类来实现。子类继承了抽象父类,如果没有实现抽象父类,那么子类还是一个抽象子类。否则子类一定要实现抽象父类里的抽象方法,成为具体类。
如果一个方法被声明为抽象类,则这个类必须声明为抽象的。
在抽象类里不能具体化抽象抽象方法。
在抽象类的具体方法里可以调用抽象方法。
抽象方法只能有方法声明,不能有方法的实现。
在一个抽象类里,可以有多个抽象方法,和多个具体方法。
抽象类不能被实例化,只有具体类才能被实例化。
UML类图里:类的图标是C, 接口图标是I 。
抽象类通过子类实现抽象方法,extends。
接口通过子类实现接口方法,implements
接口(修饰符interface)
接口比抽象类更加抽象。接口可以继承接口。
接口中不能有非静态变量,因为接口不能被实例化。接口中只能有静态成员常量。
实现接口时,要实现接口中声明的所有方法。
package src.test;
public interface Figure {
String name = " 几何图形“; //省略了public static final
void onDraw(); //省略了public abstract void onDraw()
}
package src.test.imp;
import src.test.Figure;
public class Triangle implements Figure {
@override
public void onDraw() {
System.out.println("绘制三角形...");
}
}