2025年3月18日 星期二 甲辰(龙)年 月十七 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Java

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

时间:10-16来源:作者:点击数:58

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

众所周知,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();
  • }
  • }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门