Java 接口的继承

您所在的位置:网站首页 实现接口定义类的关键字 Java 接口的继承

Java 接口的继承

2024-07-17 05:31| 来源: 网络整理| 查看: 265

我们先来回顾下接口的相关知识

接口是规范,用interface关键字修饰接口,接口是是一组抽象方法定义和常量的集合,接口间的继承是多继承关系。

接口的定义

public 接口名{ /* 零个到多个的常量定义 零个到多个的抽象方法的定义 */ }

实现接口

修饰符 class 类名 extends 父类名 implements 接口1,接口2,...{ // 如果继承的类是抽象类,必须实现父类的抽象方法 // 实现接口定义的抽象方法 }

备注 : 1)接口中的方法 public abstreact 关键字可以省略,系统会帮我们隐式添加 2)接口中的常量 public static final 关键字可以省略,系统会帮我们隐式添加

一、接口的继承

接口的继承和类继承不一样,接口完全支持多继承,即一个接口可以有多个直接父接口,和类继承相似,子接口扩展了某个父接口,将会获得父接口定义的所有抽象方法,常量。

语法

interface 接口名 entends 父接口1,父接口2,...{ /* 零个到多个的常量定义 零个到多个的抽象方法的定义 */ }

看下一个例子

public interface InterfaceA { //定义静态常量 //public static final int a = 5; // public static final 关键字系统会自动补齐 int a = 2; } public interface InterfaceB { int b = 2; } public interface InterfaceC extends InterfaceB, InterfaceA { int c = 5; } main函数 public class Inital implements InterfaceC{ public static void main(String[] args) { // 接口的引用类型可指向实现该接口的实例 InterfaceC interfacec = new Inital(); //打印类型 System.out.println(interfacec.getClass()); //通过接口访问 InterfaceC 中的常量 a,b,c。其中 a,b是接口InterfaceC从父接口获得 System.out.println(InterfaceC.a); System.out.println(InterfaceC.b); System.out.println(InterfaceC.c); } }

输出结果:

class com.lemon.Inital 2 2 5

二、接口和抽象类的区别

1、共同特征

抽象类和接口都不能被实例化,我们可以用 抽象类的引用类型指向 继承抽象类的子类的对象或者接口的引用类型指向实现接口的类的实例对象。 接口和抽象类他们都位于继承树的顶端,用于被其他类实现和继承。

接口和抽象类都包含抽象方法,实现接口或继承抽象类的普通子类必须实现这些抽象方法

2、差异化

1)接口里只能包含抽象方法和常量,不包含已经提供实现的方法,抽象类则完全可以包含普通方法 2)接口不能定义静态方法,而抽象类可以定义静态方法 3)接口可以定义静态常量属性,不能定义普通常量,抽象类可以定义普通常量,也可以定义静态常量属性。 4)接口不包含构造器,抽象类可以包含构造器,但是抽象类里的构造器并不能用于创建对象,而是让子类调用这些构造器来完成抽象类的初始化操作。 5)接口里不能包含初始块,但是抽象类可以包含初始块 6) 抽象类是单继承,接口是多继承关系

总结 : 抽象类和普通类的区别 只有构造器功能区别和不能用实例化,自身可定义抽象方法。 其实,接口更像OC中的协议,强调规范。

我是这么理解接口的 : 基本功能定义在类中,扩展功能放于接口中,需要的时候就实现,不需要不管。

demo : http://download.csdn.net/download/qq_18505715/9855443



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3