继承的主要目的就是为了重用父类的属性或者方法,而不需要重新重复定义。
众所周知,Java 语言是不支持多重继承的。但是还是可以通过其他的方法间接地实现多重继承,下面重点介绍两种方法:
在 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();
}
}
在一个类中定义一些内部的类,让这些内部类继承自不同的父类,这样可以通过这些内部类来访问不同类的方法,从本质上讲,这种方法更像是组合,而不是继承。但是因为它有着继承的特点(可以重用多个类的方法与属性),因此这种方法也可以被看成是一种可以间接地实现多重继承的方法,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();
}
}