接口interfance的基本使用

一.为什么有接口?

接口:就是一种规则。

二.接口的定义和使用

1.接口用关键字interface来定义

java 复制代码
public interface 接口名{}

2.接口不能实例化

3.接口和类之间是实现关系,通过implements关键字表示

4.接口的子类(实现类)

注意1:

接口和类的实现关系,可以单实现,也可以多实现。

public class 类名 implements 接口名1,接口名2{

}

注意2:

实现类还可以在继承一个类的同时实现多个接口。

publi class 类名 extends 父类 implements 接口名1,接口名2{

}

三.案例

Animal类:

java 复制代码
package day;

public 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();
}

Swim接口:

java 复制代码
package day;

public interface Swim {
    public abstract void swim();
}

Dog类:

java 复制代码
package day;

public class Dog extends Animal implements Swim {
    @Override
    public void eat() {
        System.out.println("狗吃骨头");
    }

    @Override
    public void swim() {
        System.out.println("狗刨");
    }
}

Forg类:

java 复制代码
package day;

public class Test {
    public static void main(String[] args) {
        Forg f = new Forg("小青", 1);
        System.out.println(f.getName() + "," + f.getAge());
        f.eat();
        f.swim();

//        创建兔子的对象
        Rabbit r = new Rabbit("小白", 2);
        System.out.println(r.getAge() + r.getAge());
        r.eat();
    }
}

Raabit类:

java 复制代码
package day;

public class Rabbit extends Animal {
    @Override
    public void eat() {
        System.out.println("兔子在吃胡罗波");
    }

    public Rabbit() {
    }

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

Test测试类:

java 复制代码
package day;

public class Test {
    public static void main(String[] args) {
        Forg f = new Forg("小青", 1);
        System.out.println(f.getName() + "," + f.getAge());
        f.eat();
        f.swim();

//        创建兔子的对象
        Rabbit r = new Rabbit("小白", 2);
        System.out.println(r.getAge() + r.getAge());
        r.eat();
    }
}

运行的结果:

相关推荐
Ulyanov5 分钟前
基于Impress.js的3D概念地图设计与实现
开发语言·前端·javascript·3d·ecmascript
SunnyDays10115 分钟前
如何使用 Java 自动调整 Excel 行高和列宽
java·自动调整行高和列宽·自适应行高和列宽
A南方故人9 分钟前
一个用于实时检测 web 应用更新的 JavaScript 库
开发语言·前端·javascript
虎头金猫10 分钟前
内网导航站 “出圈”!用 cpolar 解锁 Dashy 远程访问新玩法
java·c++·python·程序人生·职场和发展·php·程序员创富
JosieBook10 分钟前
【WinForm】使用C# WinForm实现带有托盘图标功能的应用程序
开发语言·c#
2301_7903009613 分钟前
C++与量子计算模拟
开发语言·c++·算法
康小庄13 分钟前
SpringBoot 拦截器 (Interceptor) 与切面 (AOP):示例、作用、及适用场景
java·数据库·spring boot·后端·mysql·spring·spring cloud
不会c+16 分钟前
Maven私服的搭建与使用
java·maven
青灯照颦微19 分钟前
【R】三种方式安装R包
开发语言·r语言
weixin_4365250726 分钟前
若依多租户版: RuoYi-Vue-Plus
java