欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-12 15:38:17
...

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

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、常说的“是不是”和“有没有”的含义:

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

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

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