接口——Java面向对象基础(23)

接口

接口的语法:

public interface 接口名称{ // interface关键字修饰的类

    

}

public interface MyInterface {
          //定义一个接口      
}

注意:此接口非彼接口

    程序员之间经常交流的接口:通讯接口

    interface关键修饰的接口:java中的基础,是设计上的一种扩展

接口的好处

1、解决了单继承的局限性

2、将设计和实现分离,对外(调用者)隐藏了实现(而通常调用者也不需要关心实现)

3、面向接口编程是OOP的核心

接口的注意事项

接口:类与类之间只能单继承, 而接口突破了这个限制.

     1、接口不能实例化

     2、接口它的属性是静态常量默认加public static final …..),它的方法是抽象方法(默认public abstract ……)

     3、实现类必须实现接口的所有方法,除实现类也是抽象类。

     4、实现类可以有多个接口

     5、接口没有构造方法

接口和抽象类的区别

1、抽象类可以有构造方法,接口中不能有构造方法(两个都不能直接实例化)

2、抽象类中可以有普通成员变量,接口中没有普通成员变量。它是静态常量

3、抽象类中可以包含非抽象的普通方法,不能有非抽象的普通方法(jdk1.8及以上就可以有普通方法,但必须加default关键字修饰)。

4、抽象类中的抽象方法的访问类型可以是 public,protected ,但接口抽象方法只能是 public 类型的,并且默认即为 public abstract 类型。

5、抽象类中可以包含静态方法,接口中不能包含静态方法(jdk1.8+能行)

6、抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是 public static final 类型,并且默认即为 public static final 类型。

7、一个类可以实现多个接口,但只能继承一个抽象类。

代码测试

 1、接口不能实例化

 

 2.可以通过匿名内部类的方式间接实例化对象,并对实现接口中规定的方法。

 3.接口的属性默认为public static final,其方法默认为public abstract

 

 4.普通类实现接口必须实现接口中的方法,抽象类实现接口可以不实现接口中的方法

 

 

 

 4.一个类可以继承多个接口。

5.接口没有构造函数。

 6.接口中不能有静态方法,(但是jdk1.8中,接口可以有静态方法)

 7.接口中不能有普通方法,但是(jdk1.8中,接口可以有普通方法,但是必须使用default关键字声明)

 8.接口中的方法必须为public

 

原文地址:https://www.cnblogs.com/Unlimited-Rain/p/12521936.html