-
接口的简介
接口是Java语言所提供的另一种重要功能,它的结构与抽象类非常相似。接口本身也具有数据成员,抽象方法,默认方法和静态方法,凡是它与抽象类有一些不同。一是接口的数据成员都是静态的且必须初始化,即数据成员必须是静态常量。二是接口中除了声明抽象方法外,还可以定义静态方法和默认方法。 -
接口的定义
接口定义的语法格式如下:[public] interface 接口名称 [extends 父接口名列表]{ [public] [static] [final] 数据类型 常量名 = 常量;//定义常量 [public] [abstract] 返回值的数据类型 方法名(参数列表);//定义抽象方法 [public] static 返回值的数据类型 方法名(参数列表){//定义静态方法 //方法体 } [public] default 返回值的数据类型 方法名(参数列表){//定义默认方法 //方法体 } }
接口注意:
- 接口方法不能够是
private
的。 - 接口数据成员必须是静态的,且一定要赋初始值,且此值不能再被修改。
- 接口不是一个类,不能够使用
new
运算符去实例一个接口。 - 接口与接口之间可以是继承关系。
- Java中不支持多继承,也就是不能存在一个子类继承多个父类的情况,因为这样子会造成子类中某些方法或者变量的不确定性,为了弥补采用的单继承所带来的的不足,Java出现了接口的概念,而接口就可以很好的避免这个问题,Java中通过实现多接口的方法去解决类之间无法多继承的问题。
- 接口方法不能够是
-
接口的实现与引用
接口实现语法格式:class 类名称 implements 接口名表{ //... }
一个类实现一个接口的时候,需注意 :
- 如果实现某接口的类不是
abstract
的抽象类,则在类的定义部分必须要实现指定接口的所有抽象方法。 - 与类一样,每个接口都会被编译成独立的扩展名为.class的字节码文件。
接口是可以作为一种引用类型来进行使用。
例如:interface shape{ static final double PI = 3.14; abstract double getArea();//声明抽象方法 } class circle implements shape{ double r; public circle(double r){ this.r = r; } @Override public double getArea() {//实现接口中getArea方法 return PI*r*r; } }
- 如果实现某接口的类不是
-
接口的继承
接口也是拥有继承性的,定义一个接口时可以通过extends
关键字声明该接口某个已经存在的接口的子接口,而这个子接口将会继承父接口的常量,接口方法和默认方法,但是不能继承父接口中的静态方法,也不能被实现类所继承。interface father1{//父接口 static final double PI = 3.14; abstract double getArea(); } interface father2{//父接口 abstract double getLength(); } interface son extends father1, father2{//子接口 abstract double demo(); }
Java面向对象--接口
猜你喜欢
转载自blog.csdn.net/qq_43800455/article/details/103552396
今日推荐
周排行