首页 > 编程笔记

Java多继承的实现(2种方法)

继承的主要目的就是为了重用父类的属性或者方法,而不需要重新重复定义。

众所周知,Java 语言是不支持多重继承的。但是还是可以通过其他的方法间接地实现多重继承,下面重点介绍两种方法:

1) 通过接口来实现

在 Java 语言中,虽然不允许一个类继承多个类,但是允许一个类实现多个接口,因此可以通过实现多个接口的方法间接地实现多重继承的功能,Java 代码如下所示:
interface CanFly {
    public void fly();
}

interface CanRun {
    public void run();
}

class Animal {
    public void getCatagory() {
        System.out.println("I'm animal");
    }
}

class Duck extends Animal implements CanFly, CanRun {

    public void fly() {
        System.out.println("I can fly");
    }

    public void run() {
        System.out.println("I can run");
    }
}

public class Test {

    public static void main(String[] args) {

        Duck d = new Duck();
        d.getCatagory();
        d.fly();
        d.run();
    }
}

2) 通过内部类实现

在一个类中定义一些内部的类,让这些内部类继承自不同的父类,这样可以通过这些内部类来访问不同类的方法,从本质上讲,这种方法更像是组合,而不是继承。但是因为它有着继承的特点(可以重用多个类的方法与属性),因此这种方法也可以被看成是一种可以间接地实现多重继承的方法,Java 代码如下所示:
class Memory {

    public void m() {
        System.out.println("Memory");
    }
}
class CPU {

    public void c() {
        System.out.println("CPU");
    }
}

class Computer {

    class Memory1 extends Memory {}
    class CPU1 extends CPU {}
    public void m() {
        new Memory1().m();
    }
    public void c() {
        new CPU1().c();
    }
}

public class Test {

    public static void main(String[] args) {
        Computer c = new Computer();
        c.m();
        c.c();
    }
}

优秀文章