栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【java】继承与接口的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【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实现多个接口

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/489029.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号