当前位置: 主页 > JAVA语言

java class继承例子-python3 class继承

发布时间:2023-03-24 10:07   浏览次数:次   作者:佚名

一、Java语言特点

Java是一种简单、面向对象、分布式、易读、鲁棒、安全、结构明晰、可移植、高性能、多线程、动态的语言。

二、Java为什么不支持多继承?

多继承:指一个子类同时继承多个父类,从而具备多个父类的特征

多继承会造成

1、若子类继承的父类中拥有相同的成员变量,子类在引用该变量时将无法判别使用哪个父类的成员变量

2、若一个子类继承的多个父类拥有相同方法java class继承例子,同时子类并未覆盖该方法(若覆盖,则直接使用子类中该方法),那么调用该方法时将无法确定调用哪个父类的方法。

Java为了简单,废弃了C++中非常容易混淆的多继承等特性。

三、Java实现“多继承”的三种方式

上面提到的Java不可以多继承特指类,而Java的多继承机制可以通过多层继承、内部类以及接口来实现

多层继承:实际就是多个单继承累积,最下面的子类可以具备前几个父类的特征java class继承例子,但这样的多继承会造成代码冗余,可读性较差,一般的开发同学都不会这样浪费时间。

内部类:通过成员内部类实现多继承,代码示例如下

class dota {
    private String str = "let's play some dota";
    public void play() {
        System.out.println(str);
        System.out.println("好呀好呀");
    }
}
class lol {
    private String str2 = "let's play some lol";
    public void play() {
        System.out.println(str2);
        System.out.println("不约");
    }
}
class player {
    class dotar extends dota {
        public void play() {
            super.play();
        }
    }
    class loler extends lol {
        public void play() {
            super.play();
        }
    }
    public void play() {
        dotar d = new dotar();
        d.play();
        loler l = new loler();
        l.play();
    }
}
public class MultiExtendTest1 {
    public static void main(String[] args) {
        player p = new player();
        p.play();
    }
}

接口:多继承机制实现优先使用接口,接口使用比较灵活,在企业级项目编程是最推荐的方式,示例代码:

interface Dota{
    void play();
}
interface Lol{
    void play();
}
interface test extends Dota,Lol{
    void sayhi();
}
class Player implements test,Dota,Lol{
    public void play(){
        System.out.println("let's play some dota");
    }
    public  void sayhi(){
        System.out.println("hi");
    }
}
public class MultiExtendTest2{
    public static void main(String[] args) {
        Player p=new Player();
        p.play();
        p.sayhi();
    }
}

接口注意事项: