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)接口当做方法的返回值,返回的是具体的实现类的对象

posted @ 2021-03-04 22:04  别看我看路  阅读(70)  评论(0编辑  收藏  举报