Java多继承的实现(2种方法)
继承的主要目的就是为了重用父类的属性或者方法,而不需要重新重复定义。
众所周知,Java 语言是不支持多重继承的。但是还是可以通过其他的方法间接地实现多重继承,下面重点介绍两种方法:
声明:《Java系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
众所周知,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(); } }
声明:《Java系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。