接口是一种规则,描述了一个行为。
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元起,快前往官网查看详情吧