面向对象 继承的本质 Java

简介: 面向对象 继承的本质 Java**1.什么是继承?****2.继承的格式****3.继承的特性****4.当子类继承父类,我们创建子类对象时,内存中发生了什么??**5.权限修饰符

1.什么是继承?


(1)用来提高代码的复用性


(2)将相同的功能模块封装到方法中需要使用时调用方法达到代码复用的目的


(3)通过继承将多个类中的相同的类容摘取出来,变成一个新类,让其他类和当前的新类产生关系,达到代码复用性的目的


注意:Java是单继承与c++有区别 ,c++可以多继承。


6765c132c35045edbe220d896d104778.png


2.继承的格式


         关键字extends


f1e2da463d65406bae8ae7c2996b532f.png


3.继承的特性


*子类拥有父类非 private 的属性、方法。


*子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。


*子类可以用自己的方式实现父类的方法。


*Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承 一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。


*提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)


4.当子类继承父类,我们创建子类对象时,内存中发生了什么??


如下图:


d9fce2b2e68d4ca4945299c23fb8934e.png

图片来源韩顺平 b站链接


可见子类对象有父类所有属性,但是如果我们访问name将访问谁的呢?


22636611074e429983c7cc1f66860445.png


5.权限修饰符


注意:属性和方法都适用。default就是返回类型(数据类型)前面什么都不用写。

66d8662333484083965d81ac58a71325.png

目录
相关文章
|
3月前
|
Java
Java基础语法与面向对象
重载(Overload)指同一类中方法名相同、参数列表不同,与返回值无关;重写(Override)指子类重新实现父类方法,方法名和参数列表必须相同,返回类型兼容。重载发生在同类,重写发生在继承关系中。
157 1
|
3月前
|
存储 Java 关系型数据库
Java 项目实战基于面向对象思想的汽车租赁系统开发实例 汽车租赁系统 Java 面向对象项目实战
本文介绍基于Java面向对象编程的汽车租赁系统技术方案与应用实例,涵盖系统功能需求分析、类设计、数据库设计及具体代码实现,帮助开发者掌握Java在实际项目中的应用。
137 0
|
4月前
|
安全 Java 编译器
Java面向对象
本文深入讲解了Java面向对象编程(OOP)的四大特性:封装、继承、多态与抽象,以及方法的设计与使用。通过示例展示了如何用类和对象组织代码,提升程序的可维护性与扩展性。
|
5月前
|
存储 Java 测试技术
Java基础 - 面向对象
面向对象编程是Java的核心,包含封装、继承、多态三大特性。封装隐藏实现细节,提升代码可维护性与安全性;继承实现类间IS-A关系,支持代码复用;多态通过继承、重写与向上转型,实现运行时方法动态绑定,提升系统扩展性与灵活性。
|
7月前
|
人工智能 Java 编译器
Java:面向对象
本文介绍了Java编程中的核心概念,包括包的命名规范与自动导入机制、构造方法的特点与使用、`this`和`super`关键字的作用、继承的基本规则、访问权限的设置、封装的意义、多态的实现原理以及`static`关键字的用法。通过详细解析每个知识点,并结合代码示例,帮助读者深入理解Java面向对象编程的核心思想与实践技巧。内容适合初学者及进阶开发者学习参考。
180 0
|
9月前
|
缓存 安全 Java
java面试-基础语法与面向对象
本文介绍了 Java 编程中的几个核心概念。首先,详细区分了方法重载与重写的定义、发生阶段及规则;其次,分析了 `==` 与 `equals` 的区别,强调了基本类型和引用类型的比较方式;接着,对比了 `String`、`StringBuilder` 和 `StringBuffer` 的特性,包括线程安全性和性能差异;最后,讲解了 Java 异常机制,包括自定义异常的实现以及常见非检查异常的类型。这些内容对理解 Java 面向对象编程和实际开发问题解决具有重要意义。
|
11月前
|
Java
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
558 15
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
131 1