【java】继承与接口的区别

java中接口和继承的区别

实际概念区别:

区别1:
不同的修饰符修饰(interface),(extends
区别2:
在面向对象编程中可以有多继承!但是只支持接口的多继承,不支持’继承’的多继承哦
而继承在java中具有单根性,子类只能继承一个父类
就是有个类可以调用多个接口,但是只能继承一个父类
区别3:
在接口中只能定义全局常量和抽象方法
而在继承中可以定义属性方法,变量,常量等…
区别4:
某个接口被类实现时,在类中一定要实现接口中的抽象方法
而继承想调用那个方法就调用那个方法,毫无压力

接口的定义(使用interface关键字定义接口)

public interface People{
public void say();
}

接口的实现(使用类实现接口的关键字implements)

public class Chinese implements People{
public void say() {
System.out.println(" 你好!");
}
}

一个关于接口和继承的例子

首先定义一个父类Animal


public class Animal {
    protected String name;

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


定义了一个奔跑接口,内有一个抽象的奔跑方法

public interface IRunning {
    void run();
}

定义了一个游泳接口,内有一个抽象的游泳方法

public interface ISwimming {
    void swim();
}

再定义一个鱼类继承了Animal,实现了游泳方法的接口并对接口中的抽象方法进行了覆盖(override)

public class Fish extends Animal implements ISwimming{
    public Fish(String name) {
        super(name);
    }

    @Override
    public void swim() {
        System.out.println(this.name + "正在用尾巴游泳");
    }
}

定义一个蛤蟆类继承了父类Animal的方法并实现了两个接口方法(继承只能有一个,但是接口方法可以有多个)

public class Frog extends Animal implements IRunning, ISwimming {
    public Frog(String name) {
        super(name);
    }

    @Override
    public void run() {
        System.out.println(this.name + "正在往前跳");
    }

    @Override
    public void swim() {
        System.out.println(this.name + "正在蹬腿游泳");
    }
}

接口是:对功能的描述 继承是:什么是一种什么

打个比方:你可以有多个干爹(接口),但只能有一个亲爹( 继承)

举例:

如果狗的主人只是希望狗能爬比较低的树,但是不希望它继承尾巴可以倒挂在树上,像猴子那样可以飞檐走壁,以免主人管不住它。

那么狗的主人肯定不会要一只猴子继承的狗。

设计模式更多的强调面向接口。猴子有两个接口,一个是爬树,一个是尾巴倒挂。我现在只需要我的狗爬树,但是不要它尾巴倒挂,那么我只要我的狗实现爬树的接口就行了。同时不会带来像继承猴子来带来的尾巴倒挂的副作用。这就是接口的好处。

参考文章:
接口和继承区别

java实现多个接口

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蛋蒸

大哥大嫂过年好,打个赏再走叭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值