软件中有接口,这里的接口与硬件中的接口还是有很大区别的。
这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!)
还是直接进入接口的学习:
/* 接口的特点: A:接口用关键字interface表示 interface 接口名 {} B:类(实现)接口用implements(执行,实现)表示 class 类名 implements 接口名 {} C:接口不能实例化,就是说不能凭空的创建对象 那么,接口如何实例化呢? 按照多态的方式来实例化。//类比多态的方式进行实例化 D:接口的子类 a:可以是抽象类。但是意义不大。 b:可以是具体类。要重写接口中的所有抽象方法。(推荐方案) */ //定义动物培训接口 interface AnimalTrain { public abstract void jump(); } //抽象类实现接口,无意义 abstract class Dog implements AnimalTrain { } //具体类实现接口,实现特殊的东西.接口实现类 class Cat implements AnimalTrain {//class 类名 implements 接口名{} public void jump() { System.out.println("猫可以跳高了"); } } class InterfaceDemo { public static void main(String[] args) { //AnimalTrain接口是抽象的; 无法实例化 //AnimalTrain at = new AnimalTrain(); //at.jump(); //按照多态的方式来实例化接口。 Cat at = new Cat();//自己类 at.jump(); AnimalTrain a = new Cat();//多态 a.jump(); } }
/* 类与类: 继承关系,只能单继承,可以多层继承。 类与接口: 实现关系,可以单实现,也可以多实现。 class Son extends Object implements Father,Mother {} 并且还可以在继承一个类的同时实现多个接口。例如:class Son (extends Student) implements Father,Mother {} 接口与接口: 继承关系,可以单继承,也可以多继承。 */ interface Father { public abstract void show(); } interface Mother { public abstract void show2(); } interface Sister extends Father,Mother { } //class Son implements Father,Mother //多实现 class Son extends Object implements Father,Mother { public void show() {//实现关系,可以单实现,也可以多实现。 System.out.println("show son"); } public void show2() { System.out.println("show2 son"); } } class InterfaceDemo3 { public static void main(String[] args) { //创建对象 Father f = new Son(); f.show(); //f.show2(); //报错,Father接口中没有show()2所以报错 要想使用可以通过向下转型 Mother m = new Son(); //m.show(); //报错原因同上 m.show2(); } }