(十三)java类的继承
2023-09-14 08:57:15 时间
子类是一种特殊的父类,因此可以看作父类是大类,子类是小类。
extends实际上是拓展的意思,而父类和子类的关系实际上用拓展来解释似乎更加的恰当,子类在父类功能的基础上增加新的功能。
在继承中,除开父类的构造器以外,子类几乎可以继承父类所有的功能和属性。
每个类最多只能有一个直接的父类,可以有无限多个间接父类,就像人一样,只能有一个亲生父亲。
若一个类定义的时候没有显示定义直接父类,则默认继承java.lang.Object,他是所有类的父类,因此所有的java对象都可以调用java.lang.Object的实例方法。
父类引用可以指向子类对象,即声明一个父类型的变量可以实例化为子类的对象,这也是java多态性的一个重要的实现方式。除此之外,方法的重载也是多态性的实现方式之一。
需要注意的是,重写方法和被重写的方法必须同时都是类方法或者同时都不是类方法。
继承中还有一个很重要的概念是重写,对于子类重写过的方法,使用时究竟使用重写前的版本还是重写后的版本,取决于对象的类型而不是引用的类型。
重写的时候,子类方法会覆盖父类的方法,父类private方法不可被重写。
有的时候,当子类定义了与父类同名的属性时,也会覆盖父类的属性。正常情况下,子类定义的方法、子类属性直接访问该属性时,都会默认访问覆盖后的方法和属性而无法访问到被覆盖的方法和属性。但是在子类定义的实例方法中可以通过super来访问父类被覆盖的方法和属性。
如果子类中没有和父类同名的属性,那么访问的时候不需要用super,可以直接访问。和this一样,super也不能出现static方法中。
继承的时候不继承父类的构造器,如果在子类中一定要用的话,也可以通过super来调用。而即使不显示的调用父类构造器,系统也会默认在子类构造器执行体的第一行调用父类构造器一次,只不过是调用父类的无参构造器。
super调用和this调用不会同时出现。
子类构造器调用父类构造器有几种情况:
1.super显示调用,系统会根据super里的实参列表选择调用父类的哪个构造器。
2.子类构造器执行体的第一行用了this调用本类重载的构造器,那么在执行调用的构造器的第一行会调用父类的构造器。
3.子类中既没有this调用也没有super调用,系统会默认在子类构造器执行体的第一行调用父类的无参构造。
创建任何对象总是从该类继承树的最顶层构造开始执行,然后依次向下,最后才是本类。
Java初学者:技术文章(类的继承) Java是面向对象编程的语言,面向对象的主要目的之一是提供可重用的代码。设想当我们开发一个非常庞大的项目时,重用已有的代码比重新编写要好得多,而且还可以节省时间,避免在程序中引入新的错误所以使用继承可以提高代码的重用性与程序的扩展性。
Java复习3-类的继承 本次学习面向对象设计的另外一个基本概念:继承(inheritance)。这是Java程序设计中的一项核心技术。另外,还要学习反射(reflection)的概念。 类、超类、子类 public class Manager extends Employee{ //... 关键字extends表明正在构造的新类派生于一个已存在的类。
【JAVA零基础入门系列】Day13 Java类的继承与多态 【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出 Day8 Java的控制流程 Day9 Ja...
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
extends实际上是拓展的意思,而父类和子类的关系实际上用拓展来解释似乎更加的恰当,子类在父类功能的基础上增加新的功能。
在继承中,除开父类的构造器以外,子类几乎可以继承父类所有的功能和属性。
每个类最多只能有一个直接的父类,可以有无限多个间接父类,就像人一样,只能有一个亲生父亲。
若一个类定义的时候没有显示定义直接父类,则默认继承java.lang.Object,他是所有类的父类,因此所有的java对象都可以调用java.lang.Object的实例方法。
父类引用可以指向子类对象,即声明一个父类型的变量可以实例化为子类的对象,这也是java多态性的一个重要的实现方式。除此之外,方法的重载也是多态性的实现方式之一。
需要注意的是,重写方法和被重写的方法必须同时都是类方法或者同时都不是类方法。
继承中还有一个很重要的概念是重写,对于子类重写过的方法,使用时究竟使用重写前的版本还是重写后的版本,取决于对象的类型而不是引用的类型。
重写的时候,子类方法会覆盖父类的方法,父类private方法不可被重写。
有的时候,当子类定义了与父类同名的属性时,也会覆盖父类的属性。正常情况下,子类定义的方法、子类属性直接访问该属性时,都会默认访问覆盖后的方法和属性而无法访问到被覆盖的方法和属性。但是在子类定义的实例方法中可以通过super来访问父类被覆盖的方法和属性。
如果子类中没有和父类同名的属性,那么访问的时候不需要用super,可以直接访问。和this一样,super也不能出现static方法中。
继承的时候不继承父类的构造器,如果在子类中一定要用的话,也可以通过super来调用。而即使不显示的调用父类构造器,系统也会默认在子类构造器执行体的第一行调用父类构造器一次,只不过是调用父类的无参构造器。
super调用和this调用不会同时出现。
子类构造器调用父类构造器有几种情况:
1.super显示调用,系统会根据super里的实参列表选择调用父类的哪个构造器。
2.子类构造器执行体的第一行用了this调用本类重载的构造器,那么在执行调用的构造器的第一行会调用父类的构造器。
3.子类中既没有this调用也没有super调用,系统会默认在子类构造器执行体的第一行调用父类的无参构造。
创建任何对象总是从该类继承树的最顶层构造开始执行,然后依次向下,最后才是本类。
Java初学者:技术文章(类的继承) Java是面向对象编程的语言,面向对象的主要目的之一是提供可重用的代码。设想当我们开发一个非常庞大的项目时,重用已有的代码比重新编写要好得多,而且还可以节省时间,避免在程序中引入新的错误所以使用继承可以提高代码的重用性与程序的扩展性。
Java复习3-类的继承 本次学习面向对象设计的另外一个基本概念:继承(inheritance)。这是Java程序设计中的一项核心技术。另外,还要学习反射(reflection)的概念。 类、超类、子类 public class Manager extends Employee{ //... 关键字extends表明正在构造的新类派生于一个已存在的类。
【JAVA零基础入门系列】Day13 Java类的继承与多态 【JAVA零基础入门系列】(已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day6 Java字符串 Day7 Java输入与输出 Day8 Java的控制流程 Day9 Ja...
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
相关文章
- java war包是什么_jar包和war包区别是什么?
- Java枚举详解
- java删除文件目录及文件_Java删除文件,目录
- java 二维数组 arraycopy_Java对数组的复制[通俗易懂]
- Java基础知识总结(超详细整理),java从入门到精通pdf「建议收藏」
- java图书馆新地址_最受Java开发者喜爱的5款开源IDE盘点
- java标识符是什么_Java 标识符「建议收藏」
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java数组去重_JAVA数组去重常用方法
- AQS:Java 中悲观锁的底层实现机制
- 【说站】java守护线程如何理解
- java二维数组
- JAVA 应用线上故障排查手册
- 你真的了解Java中的线程池吗
- 很黄色的JAVA游戏_《yellow》很黄!很暴力?居然有这么黄的游戏!
- java 舆情分析_基于Java实现网络舆情分析系统研究与实现.doc[通俗易懂]
- Java 逻辑运算符(&、|、^、!、&&、||)
- 并发多线程学习(三)Java多线程入门类和接口
- 【Java】继承和多态的小案例练习
- Java 19 发布,Loom 怎么解决 Java 的并发模型缺陷?
- 实现Java程序操作MySQL数据库(java调用mysql)
- Java与Oracle联手构建数据库新世界(java和oracle)
- 开发开创Linux更美好的Java开发环境(linux集成java)
- Oracle与Java的连接:揭秘数据库开发技术之间的神奇联系(oracle连接java)
- 数据库简易指南:如何使用 Java 连接 MySQL 数据库(java连接mysql)
- Oracle JDK32 专业Java开发环境提供新平台支持(oracle jdk32)