我是靠谱客的博主 魁梧火,最近开发中收集的这篇文章主要介绍面向对象(十)接口接口,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

接口

如果一个抽象类的所有方法都是抽象的,则可以将这个类定义接口。接口是Java中最重要的概念之一,接口是一种特殊的类,由全局常量和公共的抽象方法组成,不能包含普通方法。

在JDK8之前,接口是由全局常量和抽象方法组成的,且接口中的抽象方法不允许有方法体。JDK 8对接口进行了重新定义,接口中除了抽象方法外,还可以有默认方法和静态方法(也叫类方法),默认方法使用default修饰,静态方法使用static修饰,且这两种方法都允许有方法体

语法格式

(接口使用interface关键字声明)

public interface 接口名 extends 接口1,接口2... {

  public static final 数据类型 常量名 = 常量值;

  public default 返回值类型 抽象方法名(参数列表);

     public abstract 返回值类型 方法名(参数列表){

        //默认方法的方法体

     }

     public abstract 返回值类型方法名(参数列表){

        //类方法的方法体

     }

}

注意

在很多的Java程序中,经常看到编写接口中的方法时省略了public ,有很多读者认为它的访问权限是default,这实际上是错误的。不管写不写访问权限,接口中的方法访问权限永远是public。与此类似,在接口中定义常量时,可以省略前面的“public static final”,此时,接口会默认为常量添加“public static final”

定义接口的实现类

与抽象类一样,接口的使用必须通过子类,子类通过implements关键字实现接口,并且子类必须实现接口中的所有抽象方法。

1.一个类可以同时实现多个接口,多个接口之间需要使用英文逗号(,)分隔。

定义接口的实现类,语法格式如下:

修饰符 class 类名 implements 接口1,接口2,...{

    ...

}

案例

演示子类既实现接口又继承抽象类

// 定义抽象类Animal
interface Animal {
public String NAME="牧羊犬";
public void shout();
public void
info();
}
 // 定义Dog类实现Animal接口和Action接口
public class Dog extends Action implements Animal {
@Override
public void eat() {
System.out.println("喜欢吃骨头");
}
@Override
public void shout() {
System.out.println("汪汪汪");
}
@Override
public void info() {
System.out.println("名称:"+NAME);
}
}
abstract class Action {
public
abstract
void
eat();
}
public class Example12 {
public static void main(String[] args) {
Dog dog=new Dog();
dog.info();
dog.shout();
dog.eat();
}
}

2.如果在开发中一个子类既要实现接口又要继承抽象类,则可以按照以下格式定义子类。

修饰符class 类名 extends 父类名 implements 接口1,接口2,... {

    ...

}

3.在Java中,接口是不允许继承抽象类的,但是允许一个接口继承多个接口

最后

以上就是魁梧火为你收集整理的面向对象(十)接口接口的全部内容,希望文章能够帮你解决面向对象(十)接口接口所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部