一、Java语言特点

Java是一种简单、面向对象、分布式、易读、鲁棒、安全、结构明晰、可移植、高性能、多线程、动态的语言。

  • 面向对象(继承、封装、多态)
  • 一次编译,到处运行(JVM实现跨平台运行)
  • 可靠性
  • 安全性
  • 支持多线程(对比C++没有内置多线程机制)
  • etc...

二、Java为什么不支持多继承?

多继承:指一个子类同时继承多个父类,从而具备多个父类的特征

多继承会造成

1、若子类继承的父类中拥有相同的成员变量,子类在引用该变量时将无法判别使用哪个父类的成员变量

2、若一个子类继承的多个父类拥有相同方法,同时子类并未覆盖该方法(若覆盖,则直接使用子类中该方法),那么调用该方法时将无法确定调用哪个父类的方法。

Java为了简单,废弃了C++中非常容易混淆的多继承等特性。

三、Java实现“多继承”的三种方式

上面提到的Java不可以多继承特指类,而Java的多继承机制可以通过多层继承、内部类以及接口来实现

多层继承:实际就是多个单继承累积,最下面的子类可以具备前几个父类的特征,但这样的多继承会造成代码冗余,可读性较差,一般的开发同学都不会这样浪费时间。

内部类:通过成员内部类实现多继承,代码示例如下

class dota {private String str = "let's play some dota";public void play() {System.out.println(str);System.out.println("好呀好呀");}
}
class lol {private String str2 = "let's play some lol";public void play() {System.out.println(str2);System.out.println("不约");}
}
class player {class dotar extends dota {public void play() {super.play();}}class loler extends lol {public void play() {super.play();}}public void play() {dotar d = new dotar();d.play();loler l = new loler();l.play();}
}
public class MultiExtendTest1 {public static void main(String[] args) {player p = new player();p.play();}
}

接口:多继承机制实现优先使用接口,接口使用比较灵活,在企业级项目编程是最推荐的方式,示例代码:

interface Dota{void play();
}
interface Lol{void play();
}
interface test extends Dota,Lol{void sayhi();
}
class Player implements test,Dota,Lol{public void play(){System.out.println("let's play some dota");}public  void sayhi(){System.out.println("hi");}
}
public class MultiExtendTest2{public static void main(String[] args) {Player p=new Player();p.play();p.sayhi();}
}

接口注意事项:

  • 和抽象类一样,接口不能实例化,接口是特殊的抽象类
  • 如果一个类继承了接口,必须重写实现接口中的所有方法
  • 接口没有构造函数,抽象类可以有
  • 接口的属性都是默认static final,在定义时指定初始值,接口中只有常量,接口的方法自动用public abstract修饰,只有全局抽象方法
  • 接口只有方法的声明,没有方法体
  • 抽象类可以在不提供接口方法实现的情况下实现接口

Java 实现“多继承”相关推荐

  1. java 的继承_关于java中的继承

    我们都知道Java中的继承是复用代码.扩展子类的一种方式,继承使得Java中重复的代码能够被提取出来供子类共用,对于Java程序的性能以及修改和扩展有很大的意义,所以这是一个非常重要的知识点. 那么对 ...

  2. 零基础Java学习之继承

    继承 继承的概述 继承的理解 继承的好处 继承的格式 继承的特点一:成员变量 私有化(private) 成员变量不重名 成员变量重名 继承的特点二:成员方法 成员方法不重名 成员方法重名--重写(Ov ...

  3. Java异常以及继承的一些问题

    Java异常以及继承的一些问题 参考文章: (1)Java异常以及继承的一些问题 (2)https://www.cnblogs.com/rookieJW/p/8059864.html 备忘一下.

  4. java容器类的继承结构

    摘要: java容器类的继承结构 Java容器类库定义了两个不同概念的容器,Collection和Map Collection 一个独立元素的序列,这些元素都服从一条或多条规则.List必须按照插入的 ...

  5. java自学手记——继承

    java面向对象三大特点封装.继承和多态.继承作为三大特点之一,主要是为了实现多态的,即多态的前提条件是继承.代码示例: 1 class Person{ 2 String name; 3 String ...

  6. Java基础:继承、多态、抽象、接口

    第一讲    继承 一.继承概述 1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可. 2.通过extends关键字可以实现类与类的 ...

  7. java面向对象——包+继承+多态(一)

    文章目录 包(package) 概念: 创建包 注意事项: 导入包中的类: 直接导入 import语句导入 注意事项: 静态导入(了解即可) 包的访问权限 常见的系统包 继承 继承的语法规则 注意要点 ...

  8. Java类的继承总结

                       本文主要是讲述Java类的继承,更多Java技术知识,请登陆疯狂软件教育官网.加疯狂软件官方微信号:fkitorg,免费赢大奖,有机会赢得iOS培训课程一套. 在 ...

  9. 腾讯架构师讲解Java接口的继承与抽象类

    在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体.interface为类提供了接口规范. 在继承中,我们为了提高程序的可复用性,引入的继承机制.当时的 ...

  10. java中抽象类继承抽象类_用Java中的抽象类扩展抽象类

    java中抽象类继承抽象类 示例问题 当我创建Java :: Geci抽象类AbstractFieldsGenerator和AbstractFilteredFieldsGenerator我遇到了一个不 ...

最新文章

  1. 基于小波变换的图像解压缩
  2. MyEclipse 2014中 Window--customize perspective 功能 打不开的解决办法
  3. #1182 : 欧拉路·三(有向图的欧拉路)
  4. kubernetes1.30集群部署+dashboard+heapster
  5. SpringMVC拦截器-知识小结
  6. 网工小课堂(part1)--计算机网络概论
  7. linux下单点故障的软件,KeepAlived防止单点故障
  8. CodeForces - 894E Ralph and Mushrooms (强连通缩点+dp)
  9. 山东大学 2020级数据库系统 实验七
  10. mfc mysql操作_MFC的数据库操作
  11. 360 快视频疑似盗取 B 站数据,暂无最新回应
  12. git 上传了一个非常大的文件,删除文件
  13. kindeditor在Firefoxt 和 Chrome 下不能取到值的解决方法
  14. hibernate教程笔记2
  15. python基本数据类型——set
  16. 我的第二个切换图片高亮显示,给力
  17. python使用密钥加密的表述_python - PythonGnuPG生成密钥,对消息进行加密和解密 - SO中文参考 - www.soinside.com...
  18. 《IIS6下运行PHP的方法》
  19. 利用计算机技术设计直流稳压电源,数字化控制在直流稳压电源中 - 稳压电源 - 电子发烧友网...
  20. msdn.itellyou.cn文件类型大小统计

热门文章

  1. 如何让培训更加生动化
  2. Google Earth Engine(GEE)——Sentinel-2 Level-2A数据进行水域面积提取(宁夏为例)
  3. MacOS下搜狗输入法部分场景卡顿解决方案
  4. 2016计算机销量排名,2016US News计算机排名TOP100详情一览表
  5. 集客家客运维那些事_集客家客考试题
  6. 安卓开源项目周报0308
  7. GitLab Issue
  8. hdl四位二进制计数器_利用Quartus设计4位同步二进制加法计数器
  9. Android 策略路由
  10. CSDN去广告小脚本