189 8069 5689

Java面向对象之接口-创新互联

1、什么是接口

接口是一种规则,描述了一个行为。

10年积累的网站设计、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先制作网站后付款的网站建设流程,更有神农架林区免费网站建设让你可以放心的选择与我们合作。

举个例子:

     动物

青蛙        狗        兔子

他们三个动物都会吃饭喝水,但是青蛙和狗会游泳,兔子不会游泳。

难道我们在动物里面就放弃写游泳这个行为,让青蛙和狗都创建独立方法吗?

这显然是不合理的。

所以我们可以抽取将行为作为抽象方法抽取出来,放在接口中,谁需要就去调用接口。

举个不恰当的例子:

每一个对象都是修仙者,类是自身已经参悟的大道,方法是已经掌握的法则,属性是自身的修为。

方法的重写是对自身掌握的法则的扩展。

接口是那些游离在世间等待修仙者吸纳的法则。

2、接口的定义和使用

接口用关键字interface来定义

public interface 接口名{}

接口不能实例化(接口不能创建对象) 

注意1:接口和类之间是实现关系,通过implements关键字表示。

public class 类名 implements 接口名{}

注意2:实现类还可以在继承一个类的同时实现多个接口。

public class 类名 extends 父类 implements 接口名1,接口名2{}

注意3:实现类后需要重写所有抽象方法或者定义抽象类

3、接口中成员的特点

成员变量

  只能是常量

 默认修饰符:public static final

  这是因为,public权限足够大别的包也可以访问,static可以用类名调用简单快捷,final作为一个规则我们不想让别人修改他,所以设置final。

构造方法

  没有

  接口不可以创建对象。

  接口也不需要外界赋值。

成员方法

  只能是抽象方法

  默认修饰符:public abstratc(建议新手手动写上)

jdk7以前:接口中只能定义抽象方法。

jdk8:

为了解决接口功能升级时,所有实现接口的类都需要重写的麻烦,jdk8引入了默认方法,需要用default 关键字修饰

格式:

public default void show(){  }

注意事项:

默认方法不是抽象方法,所以不被强制重写,但是你仍然可以重写他,在重写时必须去掉default

默认方法在定义时public可以省略,default不可以省略。

如果实现了多个接口,且接口里有重名的默认方法,必须对默认方法进行重写。(否则你就不知道调用哪个方法了对吧)

jdk8允许接口中定义静态方法,用static关键字修饰。

格式:

public static void show(){  }

注意事项:

静态方法只能通过接口名调用,不可以用对象或者类名调用。

jdk9:

在默认方法和静态方法中有时会有大量重复的代码,我们想要一种私有的方法被默认和静态方法调用,并且不对外服务。jdk9中新增了接口中的私有方法。

格式1:普通的私有方法--->只能服务默认方法

private void show(){  }

格式2:静态的私有方法--->只能服务静态方法

private static void show(){  }

4、接口和类之间的关系

类和类的关系

  继承关系,只能单继承不能多继承,但是可以多层继承。

类和接口的关系

  实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。

注意:多继承时需要重写所有的抽象方法。如果不同接口中有重名抽象方法,重写一次即可。

接口和接口的关系

​​​​​​​继承关系,可以单继承,也可以多继承。

5、总结

1、接口代表了规则,是行为的抽象。想让类拥有哪个行为,让这个类实现对应的接口就可以了。

2、当一个方法的参数是接口时,可以传递接口所有实现类的对象,这样的方式称之为接口多态。

相当于接口创建了抽象方法。在类中实现了接口,重写方法。在test类中创建方法并调用时可以把参数类型设置为接口,这样调用时可以用所有的实现了接口的类创建的对象调用。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站标题:Java面向对象之接口-创新互联
文章分享:http://cdxtjz.com/article/esigs.html

其他资讯