注意事项:
1、非抽象类不能包含抽象方法;在一个有抽象类扩展出来的非抽象类中,所有的抽象方法都必须实现,即使这个子类不使用它们。抽象方法是非静态的。
2、抽象类不能用new操作符实例化,但仍然可以定义它的构造方法,这种构造方法将在它子类的构造方法中调用。
3、子类可以声明为抽象的,即使它的父类是具体的;子类可以覆盖它父类的方法,将其声明为abstract。这种方法非常少用,但是当父类中方法的实现在子类中无效时,这种方法就有用了,这种情况下,子类必须声明为抽象的。
4、不能用new操作符创建抽象类的实例,但是,抽象类可以用作数据类型:
GeometricObject[] objects=new GeometricObject[10];
5、在接口中,所有的数据域都是public finial static的,所有的方法都是public abstract的,由于这个原因,Java可以忽略这些修饰符,下面的声明是等价的:
public interface T1{ public static final int K=1; public abstract void p(); }
等价于
public interface T1{ int K=1; void p(); }
6、利用extends关键字,接口可以继承其他接口,例如:
public interface NewInterface extends Interface1,Interface2,...,InterfaceN{ //... }
一个实现NewInterface的类必须实现定义在NewInterface,Interface1,Interface2,。。。,InterfaceN中的抽象方法。一个接口只能扩展其他接口,不能扩展类。一个类可以扩展它的父类并实现多个接口