JAVA抽象类和接口

别来无恙 提交于 2020-02-10 13:25:59

注意事项:

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中的抽象方法。一个接口只能扩展其他接口,不能扩展类。一个类可以扩展它的父类并实现多个接口

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!