【Java】接口与abstract类的区别

目录

1.接口的定义

2.接口的使用 

3.abstract类与接口的比较


1.接口的定义

       由于Java不支持多继承性,即一个类只能有一个父类。因此,单继承性使得Java变得简单,易于管理和维护。

接口使用关键字interface来声明,格式:interface  接口的名字。

例:

intrefance Animal{
//定义一个接口,名字为Animal
}

         接口只能写常量,且为公共静态常量。所有接口体的常量都是static常量,访问权限一定都是public(允许省略public,final和static修饰符),所有的抽象方法的访问权限一定都是public(允许省略public,abstract修饰符)

例:

interface Print{
public final static int Max=100;//等价写法int Max=100;
public abstract void add();//等价写法void add();
public abstract float sum(float x ,float y);
}
//省略的部分系统会默认补充

2.接口的使用 

     一个类可以实现多个接口,类通过关键字implements声明自己实现一个或多个接口,如果实现多个接口,则用逗号隔开接口名,例如:

class A implements Printable,Addable;//Printable和Addable为两个接口

   注意:类与类之间是继承,属于单继承,接口之间叫多继承,类与接口之间叫实现,且可以多实现。

如:Animal 的子类Dog类实现Eatable和Sleepable接口

class Dog extends Animal implements Eatable,Sleepable;

     一个类在继承另一个类的同时还可以实现接口,此时extends关键字必须位于implements

关键字之前。

例如 :

class Dog extends canidae implements Animal{
//先继承再实现
}

注意:不能反过来,只能先继承再实现

3.abstract类与接口的比较

    1.abstract类和接口都可以有abstract方法。

    2.接口中只可以有常量,不能有变量;而abstract类中既可以有常量也可以有变量。

    3.abstract类中也可以有非abstract方法,接口不可以。 

你可能感兴趣的:(JAVA,java)