软件中有接口,这里的接口与硬件中的接口还是有很大区别的。
这里介绍接口不考虑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();
}
}