让java的多重继承成为现实!

简介: 让java的多重继承成为现实!


在内部类的基础上,我们来看看今天的知识点儿。

众所周知,java类之间只可单继承,不可多继承,也就是一个类只能继承一个类,不可以继承多个类,那我们如果想“反其道而行之”呢?这不是危言耸听,因为我们确实有些情况下需要继承多个类,比如希望拥有两个类的行为功能,就很难使用单继承来解决问题了(当然,使用多个接口实现也是可以解决的)。

那,可不可以不利用接口的情况下实现多继承呢?当然是可以的,那就是——内部类!

下面我们来分析个例子:

假如有一个吃饭的类(Eat)和玩耍的类(Play),吃饭的类里面实现的是吃饭功能,而玩耍的类里面自然实现的是玩耍的功能。

现在新加了一个People类(人),该类想实现吃饭和玩耍的功能,如果使用继承的话,我们只能实现其中的某一功能,吃饭亦或玩耍,这满足不了我们的需求。

下面我们来举个例子,使用内部类,让java的多继承成为现实。

Eat类:

//吃饭的类
public class Eat {
  
  public void info (){
    System.out.println("正在吃饭");
  }
}

Play类:

//玩耍的类
public class Play {
  public void info(){
    System.out.println("正在玩耍");
  }
}

People类:

public class People {
  
  //创建吃的 内部类
  public class EatIng extends Eat{
    
  }
  
  //创建玩的内部类
  public class PlayIng extends Play{
    
  }
  
  //实例化两个内部类的对象
  EatIng eatIng = new EatIng();
  PlayIng playIng = new PlayIng();
  
  //人正在吃饭
  public void peopleEat(){
    eatIng.info();
  }
  
  //人在玩耍
  public void peoplePlay(){
    playIng.info();
  }
  
  //main方法主体
  public static void main(String[] args) {
    People people = new People();
    people.peopleEat();
    people.peoplePlay();
  }
}

其运行结果为:

代码分析:首先我们创建了Eat类和Play类,两类里面都有一个方法,吃饭和玩耍。然后就是People类,该类中,我们分别创建两个内部类,吃和玩。然后就是实例化两个内部类的对象,最后通过这两个对象即可实现我们想要实现的方法,你看看是不是就间接的实现了多继承了呢。这样虽说有点儿麻烦,不过需求还是达到了!


目录
打赏
0
0
0
0
57
分享
相关文章
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
在Java的编程世界里,多态不仅仅是一种代码层面的技术,它是思想的碰撞,是程序员对现实世界复杂性的抽象映射,是对软件设计哲学的深刻领悟。
102 9
蓝易云 - Java现实WebSocket教程
以上就是在Java中实现WebSocket的基本步骤。
46 1
基于Java的大学生选修选课系统设计与实现(亮点:多角色、贴近现实的选课流程、好看的系统外观)
基于Java的大学生选修选课系统设计与实现(亮点:多角色、贴近现实的选课流程、好看的系统外观)
178 0
Java接口:实现多重继承,促进代码复用与扩展的强大工具
Java接口:实现多重继承,促进代码复用与扩展的强大工具
218 0
现实世界中的原生 Java
Java 在企业应用中占据主导地位。但在云上,Java 比一些竞争对手的使用成本更高。原生编译降低了在云中使用 Java 的成本:它创建的应用程序启动速度更快,占用的内存更少。
248 0
为什么 Java 不支持类多重继承?
我发现这个问题很难回答,因为答案可能不会让面试官满意,在大多数情况下,面试官正在寻找答案中的关键点,如果你提到这些关键点,面试官会很高兴。
一起来看引用与现实的邂逅 | 带你学《Java面向对象编程》之二十二
本节通过三则分析为读者介绍了类关联结构、类自身关联等逻辑与合成设计模式的概念,带读者去理解类的灵活性。
一起来看引用与现实的邂逅    | 带你学《Java面向对象编程》之二十二
来自现实世界的邀请:映射转换 | 带你学《Java面向对象编程》之二十三
本节通过生活中常见的部门-雇员关系手把手带领读者将现实存在的数据表转化成Java实体类。