面向对象--接口--接口的概述

接口的概述

程序引例

/*
        接口的概述:
            1、接口使用关键字:interface表示
                定义格式:interface 接口名{}
            2、类实现接口用
                定义格式:class 类名 implements 接口名{}
            3、接口不能实例化
                那么如何表示接口的实现呢?
                使用多态的方式实现,有具体的子类进行实例化,其实这是多态的一种,接口多态
            4、接口子类的特点
                如果子类是一个抽象类,那么可以不需要重写接口中的方法
                如果子类是一个具体的类,必须要重写接口中所有抽象方法

        到目前为止,我们学过三种多态方式:
            1、具体类中的多态 (最后才是这个)
            2、抽象类中的多态 (其次是抽象多态)
            3、接口中的多态   (最常见的,接口开发)
*/
//程序示例:钻火圈的猫
abstract class Animal{
    private String name;
    private int age;

    public Animal() {
    }

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public abstract void eat();
}

class Cat extends Animal{

    public Cat() {
    }

    public Cat(String name, int age) {
        super(name, age);
    }

    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}

//定义一个接口,表示钻火圈
//定义格式:interface 接口名{}
interface DrillFire{
//这里为什么是抽象方法后面会说
    public void zuanHuo();

}

//定义被训练过的猫的类实现钻火圈接口
//定义格式:class 类名 implements 接口名{}
class TrainCat implements DrillFire{
  //如果子类是一个具体的类,必须要重写接口中所有抽象方法
    @Override
    public void zuanHuo() {
        System.out.println("猫跳着钻火圈");
    }
}

//定义一个抽象类实现钻火圈接口
abstract class Demo implements DrillFire{
//如果子类是一个抽象类,那么可以不需要重写接口中的方法
}

public class InterfaceDemo1 {
    public static void main(String[] args) {
      
      //      接口不能实例化
//        DrillFire df = new DrillFire();
      
      //接口的引用指向实现类的对象,接口多态
        DrillFire df = new TrainCat();
    }
}
posted @ 2021-12-12 19:13  赤兔胭脂小吕布  阅读(77)  评论(0编辑  收藏  举报