【Java|基础篇】面向对象三大特性之继承(上)

news/2024/10/17 16:32:13/

文章目录

  • 1. 前言
  • 2. 问题提出
  • 3. 什么是继承
  • 4. 继承的特点

1. 前言

继承是面向对象三大特性之一. Java的继承也是很复杂.
本篇文章先帮助大家理解继承的概念
在这里插入图片描述

2. 问题提出

先来看这两个类:
Student类:

public class Student {private String name;private int age;private String id;public void sleep(){System.out.println("睡觉");}public void study(){System.out.println("学习");}
}

Teacher类:

public class Teacher {private String name;private int age;private String id;public void sleep(){System.out.println("睡觉");}public void teach(){System.out.println("传道授业解惑");}
}

可以看到这两个类具有很多相同的属性和方法. 如果后面定义的类中也要用到这些属性,那么就需要再写一遍这些重复的代码. 为了解决这个问题,面向对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复用

3. 什么是继承

继承是面向对象三大特性之一.Java中的继承是面向对象编程中的一个重要概念,它允许一个类继承另一个类的属性和方法。在Java中,使用关键字extends来实现继承。

因此可以在上面两个类的基础上,将重复的部分提取出来,定义一个Person类:

public class Person {private String name;private int age;private String id;public void sleep(){System.out.println("睡觉");}
}

只需要让Student类和Teacher类继承Person类,就可以不用写共有的属性和方法了,只需要写类中所特有的属性和方法即可. Student和Teacher都继承Person类,因此Student类和Teacher类可以成为Person的子类/派生类,而Person类称为父类/基类或超类
例如: Student类就可以改为这样

public class Student extends Person{public void study(){System.out.println("学习");}
}

注意:

  1. 子类会将父类中的成员变量或者成员方法继承到子类中了
  2. 子类继承父类之后,必须要新添加自己特有的成员,体现出与基类的不同,否则就没有必要继承
  3. 当类与类之间,存在相同(共性)的内容,并满足子类是父类中的一种,就可以考虑使用继承,来优化代码

4. 继承的特点

  1. Java只支持单继承,不支持多继承,但支持多层继承.多层继承:子类A继承父类B,父类B可以继承父类C,每一个类都直接或者间接的继承于Object类
    在这里插入图片描述
    在这里插入图片描述
  2. Java中所有的类都直接或者间接继承于Object类
  3. 子类只能访问父类中非私有(非privite)的成员

感谢你的观看!希望这篇文章能帮到你!
专栏: 《从零开始的Java学习之旅》在不断更新中,欢迎订阅!
“愿与君共勉,携手共进!”

在这里插入图片描述


http://www.ppmy.cn/news/798638.html

相关文章

单反相机的照片不见了如何恢复

转眼又到了春暖花开的日子了,而且春夏季节,我们的节假日又多,正好出去踏春。我和女友都攒了年假没有修,又接了一个法定假日,打算去云南走一趟。结果旅途中还发生了一键关于照片恢复的插曲。 我们两个都是旅游发烧友&am…

索尼相机里的照片要怎么恢复

索尼相机是去日本的时候购买的,都说日本的数码产品好,也不知道我的运气是好还是不好,虽然有机会去日本,但是却没有大钱去购买过于高端的产品,刚好缺一个数码相机,于是就购置了一个。日本的数码相机牌子不少…

sony相机照片恢复|Mac电脑sony相机照片误删了怎么恢复?

索尼照相机是索尼公司的优质产品之一,索尼照相机走的是高端时尚前卫路线,CCD技术先进,便携中的高像素,防抖,自动捕捉头像,而且索尼照相机还支持笑脸快门,可以捕捉精彩的一瞬间。因此受到了广大摄…

索尼相机卡照片误删丢失恢复图文教程

相机卡很多摄影爱好者都会多备用几个,也是相机拍照录视频必不可少的东西,那么大家有没有遇到过相机卡照片不小心删除或者在电脑上意外格式化呢?小编就遇到过,然后还是很快的借助工具恢复回来了,那么现在小编就把如何使…

Django4.0+使用rest_framework_jwt的问题

问题描述 python版本:3.10 Django版本:4.1 djangorestframework-jwt版本:1.11.0 在写jwt认证功能时,发现run的时候会报以下错误 from django.utils.translation import ugettext as _ ImportError: cannot import name ugettext…

Qt源码阅读(五)-deleteLater

个人经验总结,如有错误或遗漏,欢迎各位大佬指正 🥳 在本篇文章中,我们将深入分析源码,探讨deleteLater的原理。 deleteLater是Qt框架提供的一个重要函数,用于在事件循环中延迟删除对象。 在软件开发中&am…

时间序列预测 | Matlab移动平均模型MA时间序列预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测 | Matlab移动平均模型MA时间序列预测 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量 warning off % 关闭报警信息…

Qt样式表Qss

文章目录 简介基本语法使用setStyleSheet设置样式表可以设置的属性使用QtCreator设置 简介 Qss是Qt程序界面中用来设置控件的背景图片、大小、字体颜色、字体类型、按钮状态变化等属性它是用来美化UI界面。实现界面和程序的分离,快速切换皮肤。 学习视频 基本语法…