Java-面向对象_接口(JDK1.8之前)
【1】接口声明格式:
[访问修饰符] interface 接口名 [extends 父接口1,父接口2...]{
常量定义;
方法定义;
}
【2】代码:
public interface TestInterface01 { /*public static final*/ int NUM = 10; /*public abstract */void b(int num); /*public abstract*/ int c(String name); } //5.类和接口的关系是什么? 实现关系 类实现接口: //6.一但实现一个接口:那么实现类要重写接口中的全部的抽象方法; //7.如果没有全部重写抽象方法,那么这个类可以变成一个抽象类。 //8.java只有单继承,java还有多实现 //一个类继承其他类,只能直接继承一个父类 //但是实现类实现接口的话,可以实现多个接口 class Student implements TestInterface01{ @Override public void b(int num) { System.out.println("---1"); } @Override public int c(String name) { return 100; } } class Test{ public static void main(String[] args) { //10.接口不能创建对象 //TestInterface01 t = new TestInterface01(); TestInterface01 t = new Student();//接口指向实现类 --》多态 //11.接口中常量如何访问: System.out.println(TestInterface01.NUM); Student s1 = new Student(); System.out.println(s1.NUM); System.out.println(t.NUM); } }
【3】接口的作用是什么?
定义规则,只是跟抽象类不同地方在哪?他是接口不是类,
接口定义好规则之后,实现类负责实现即可。
【4】
继承:子类对父类的继承(代码的复用比较好用)
实现:实现类对接口的实现
手机 是不是 照相机
继承:手机 extends 照相机 "is-a"的关系,手机是一个照相机
上面的写法 不好:
实现: 手机 Implements 拍照功能 “has-a”的关系,手机具备照相的功能
案例:飞机,小鸟,风筝
定义一个接口:Flyable
【5】多态的应用场合:
(1)父类当做方法的形参,传入具体的子类的对象
(2)父类当做方法的返回值,返回的是具体的子类的对象
(3)接口当做方法的形参,传入具体的实现类的对象
(4)接口当做方法的返回值,返回的是具体的实现类的对象