java中类与接口的一些常见困惑

一、类和接口的继承&实现问题:

1、一个接口可以继承多个接口,例如:interface C extends A, B {}.             

     其中A,B,C都是接口。此时接口C已经有A,B中全部的方法,也可以自己再添加额外的方法。(你可以理解为每个接口都是一个类)。

2、一个类只能继承一个类,不能继承多个类:class B extends A{}.

3、一个类可以实现多个接口:class D implements A,B,C{}    

注意:一个类如果实现了一个接口,则必须实现它的所有方法; 

4、在继承类的同时,也可以实现接口:class E extends D implements A,B,C{}

二、接口&抽象类

1、接口

    接口中的变量会被隐式地指定为public static final变量,且显式指定时也必须如此,否则会报错;

    接口中的方法会被隐式地指定为public abstract方法,且显式指定时也必须如此,否则会报错。

2、抽象类

1)如果一个类含有抽象方法(用abstract关键字修饰的方法),则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。

2)抽象类与普通类之间的区别:

    a.抽象类中含有没有具体实现的方法,所以不能用抽象类创建对象。

    b.抽象方法必须被声明为public或protected才能被子类继承并实现。缺省情况下为public。

    c.抽象类中的抽象方法必须被子类实现,如果未实现父类的抽象方法,则子类也必须定义为abstract类。

3、常说的“是不是”和“有没有”的含义:

    接口代表了行为的抽象,抽象类则是对整个类的抽象(类包括属性和行为)。

    一个子类继承了一个抽象类,则该子类必然和该父类一个种类(有其父必有其子),因此说继承是“是不是”的关系;

    一个类实现了一个接口,说明这个类有这个接口中的行为,接口实现是“有没有”的关系。

     

猜你喜欢

转载自1282882925.iteye.com/blog/2233968