抽象类 abstract
包含抽象方法的类叫做抽象类,也可以没有抽象方法,不用全是抽象方法。如果一个类包含一个或多个抽象方法,那么类本身也必须限定为抽象的。同时类的对象不可创建。当可以有构造器。
abstract class Basic {
abstract void unimplemented();
}
继承抽象类的新类并为之创建对象,那么就必须为基类的所有抽象方法提供方法定义。不定义则仍然是一个抽象类,
- 方法可以是public,protect,不能是private。内部数据可以
接口 interface
- 内部数据隐式指明static final,可以添加静态方法(如main方法),当做工具。
- 方法默认public
- 没有构造器
- 接口中定义的字段不能是“空 final",但是可以用非常量表达式初始化
- 可以在类中声明
java 8
为实现接口提供default
属性,可以 在内提供方法实现,在其实行类可以调用
方法签名包括方法名
和参数列表
,不包括返回类型
。当实现多个接口,他们的方法签名相同时,只能@Override
。
interface Jim1 {
default void jim() {
System.out.println("Jim1::jim");
}
}
interface Jim2 {
default void jim() {
System.out.println("Jim2::jim");
}
}
public class Jim implements Jim1, Jim2 {
@Override
public void jim() {
Jim2.super.jim();
}
public static void main(String[] args) {
new Jim().jim();
}
}