有相同的属性和方法都可以提取出来, 就形成了一个公共的部分,公共的部分形成一个类,其他类有一样的属性和方法的时候 不用在自己类里面在写出来,直接就公共的类中调用即可。

总结,造一个公共类,里面的属性和方法为其他的类有相同的地方,其他的类不用再重复的去写,只需要调用即可。
比如:person类为公共类,student类,worker类,teacher类都有person类中的属性和方法,只需要继承person类即可。

继承关键词:extends
public class student extends person{}
PS:这个时候student类中就有person中所有的属性和方法。这个时候 我们就不用在person类中再写属性和方法。
    (可以把之前举例的时候student中所有写的全部删除。已经继承,可以不用写进行调用。
      同时构造器也不能在使用this来使用,因为属性我们全部使用的是private修饰的,全部都是私有的
      后面会提到一个super关键词,是调用父类中的指定操作。
      目前学到的可以使用的可以通过set方法来调用,
      public student(String name) {
        this.setName(name);
    })

剩下的根据类,new对象,通过对象调用方法和之前一样。就不再一一举例。

1、为什么要设计继承性
PS:造了很多类之后,发现这些类有一些公共的结构,那就把这些公共的结构抽取出来造了一个类,然后让
有公共结构的这些类去继承造出来的这一个类,这些类就获取了造成来的类的内容,而这些类内就不必再重复
书写公共的部分,这通过的就是继承性。
或者反过来理解,我造出来一个类,再继续造的类和上一个类有重复的地方,我可以继承上一个类,这样就能获取上一个类的内容。

2、写法。
class a extends b;来实现类的继承。
这样写过之后,就出现一个概念  子类:a;父类(或基类SuperClass):b
PS:不能为了继承而继承。面向对象我们也需要遵循一些天然的共性继承,student和worketr这些具有天然的共性,就可以去继承person,不能写个pig类,也去继承。

3、子类继承父类之后,父类中声明的属性方法,子类就可以获取到。
明确的一点:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不能够直接使用。
            (只有通过公共的方法(get set)来使用)
ps:还要明确一点,继承只继承属性和方法,不继承构造器。因为构造器用的是类名,而每个类的名字是不一样的。

4、子类除了通过继承获取父类的结构之外,还可以定义自己特有的成分。
PS:也就是说除了继承父类的属性和方法外,还可以继续写自己特有的属性和方法。
eg:student类继承了person类中的名字和年龄,以及get set方法,还可以添加自己特有的属性和方法。

"extends":子类是堆父类功能的“扩展”,明确子类不是父类的子集。
PS:子集可以从数学上去理解,就是一个集合的一部分叫子集。例如1到10一共十个数字是一个集合,集合内的双数可以是一个子集。

类的继承性:只支持单继承,只能继承一个类。 
反之:一个父类可以有多个子类。

子父类是相对的概念,凡是继承了父类的子类。  
随着继承的层次越来越多,越是下面的子类功能就越是完善,因为他具有上面所有类的功能和属性。
继承的类叫做直接父类,继承的类的父类叫间接父类。
eg:a继承b,b是a的直接父类;b又是继承c,c是a的间接父类。

扩展:接口。单继承局限性太强,一旦继承一个之后就不能再继承其他的了,如果想获取更多类的功能,就把那些功能定义为接口,类实现接口,接口可以多个实现,通过实现接口的方式,打破java的单继承。

方法的重写
子类继承父类的方法,不适合,那么就可以进行重写。
PS:子类继承父类,父类的方法不适合子类的使用,就将需要重写的方法重新声明,然后重新编写方法体。
注意:子类中重新声明父类的方法之后,不论方法体是否有改变,皆为重写。

方法的重写: 修饰符 返回值类型 方法名(参数列表){}   EG:public void info(int ss){}
1、前提:有子类继承父类
2、子类继承父类以后,若父类的方法对于子类不使用,那么子类可以对父类的方法重写,覆盖,覆写(override)
3、重写规则:
    1)、要求子类方法的“返回值类型”,方法名(参数列表)与父类方法的一样。
    2)、子类方法的修饰符不能小于父类方法的修饰符
    3)、若父类方法抛异常,那么子类方法抛的异常不能大于父类的。
    4)、字符类的方法必须同为static,或非static的。

PS:使用private修饰的方法,被重写的时候不认为是重写。因为private方法,可以继承但是无法获取。实际上就可以
    理解为,没有继承。

重载和重写
区别:方法重载是在一个类内进行。
           方法重写是通过继承关系,修改父类的方法,对父类的方法进行覆盖。

四种权限修饰符
protected 估计是用于继承(只能写方法,属性)
PS:之前讲权限修饰符的时候,说到protected用于继承。
主要功能是:子类继承父类之后,子类和父类不在同一个包内,只要属性是protected,也可以直接调用。
            (注意,是调用,不是子类中有protected修饰的属性)

PS:没什么需要重点讲的,主要就是四个修饰符,写一个类,然后同一个包内,和跨包内进行调用就可以了。

面向对象的特征二 继承性相关推荐

  1. JAVA学习--面向对象的特征二:继承性

    * 一.面向对象的特征二:继承性 * 1.为什么要设计继承性?  *  * 2.通过"class A extends B"类实现类的继承.  *   子类:A  父类(或基类 Su ...

  2. java面向对象的特征二:继承性 —(14)

    1.为什么要有类的继承性?(继承性的好处) ① 减少了代码的冗余,提高了代码的复用性 ② 便于功能的扩展 ③ 为之后多态性的使用,提供了前提 图示: 2.继承性的格式: class A extends ...

  3. 面向对象三大特征——extends继承性

    面向对象的特征之二:继承性 一.继承性的好处: 1.1.减少了代码的冗余,提高了代码的复用性: 1.2.便于功能的扩展: 1.3.为之后多态性的使用,提供了前提. 二.继承性的格式: 2.1.clas ...

  4. 第四章:Java_面向对象编程(二)

    目录: 面向对象的特征之二:继承性 方法的重写 关键字super 子类对象实例化的全过程 面向对象的特征之三:多态性 Object类 Junit单元测试类 包装类 1.面向对象的特征二:继承性 1.为 ...

  5. Java面向对象(二)面向对象的特征 --- 封装 、 继承、 多态

    面向对象的特征:封装.继承.多态.(抽象) 一.封装 体现形式: 函数 --- 提高代码的复用性. 属性的私有化 --- 将属性设为私有,通过提供对外的访问方法来间接操作对象属性,可以再方法内对属性做 ...

  6. 细说面向对象三大特征

    一.软件设计的概况 1. 软件的生命周期 产品提出需求 分析以及规划 软件编码及其调试(自测,联调) 上测试环境,给测试人员测试(提bug) 上 linux 生产服务器(运维人员维护,修改bug,系统 ...

  7. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

  8. c++面向对象三大特征封装、继承和多态知识总结

    面向对象三大特征:封装,继承,多态: 一.封装:该公开的就公开话,该私有的就隐藏掉,主要是由public,private实现:作用是便于分工和分模块,防止不必要的扩展: 二.继承:就是一种传承,可以把 ...

  9. java面向对象的特征 —(13)

    面向对象的特征一:封装与隐藏 1.为什么要引入封装性? 我们程序设计追求"高内聚,低耦合". 高内聚 :类的内部数据操作细节自己完成,不允许外部干涉: 低耦合 :仅对外暴露少量的方 ...

最新文章

  1. 《Haskell趣学指南》—— 第1章,第1.2节小朋友的第一个函数
  2. wait/notify/notifyAll在Object类中
  3. 5 HBase命令行接口
  4. 不得不存!UI设计新手不可错过的7条实用法则
  5. Sun Cluster3.3+Oracle11g配置数据库资源问题
  6. Win7\xp添加虚拟网Microsoft Loopback Adapter
  7. 计算机2013知识,【2013年计算机基础知识习题与答案(三)】- 环球网校
  8. 运用计算机怎么实现自动化,如何用计算机串口实现自动化控制
  9. 关于事业发展,雷林鹏教你如何找到方向?
  10. Linux下使用nohup运行python脚本报错:Import error: No module named numpy问题解决
  11. 定性数据分析中高维列联表分析流程(附R代码)
  12. org.apache.ibatis.binding.BindingException: Mapper method 'com.hahah.atcrowdfunding.manager.dao.Cert
  13. C#,深度好文,精致好码,文本对比(Text Compare)算法与源代码
  14. cd cd~ cd- cd. cd.. cd/ cd./ cd../.. cd!$ cd /home的区别
  15. Pytorch:图像语义分割-FCN, U-Net, SegNet, 预训练网络
  16. matlab中的箭头符号怎么打开,MATLAB中上下标、斜体、箭头等符号的使用方法
  17. 《Heterogeneous Information Network Embedding for Recommendation》 论文分析
  18. mongoshake
  19. python中类的继承关系使用什么符号表示_智慧职教: Python中类的继承关系使用( )符号表示?...
  20. 【考研英语语法】复杂句的逻辑

热门文章

  1. >>数据管理:引序和目录
  2. 【经验分享】MathType试用期到了怎么办?
  3. Android:恢复出厂设置
  4. 桌面图标有蓝色阴影怎么去掉
  5. 2021.04.29删点成林
  6. Cygwin 、MSYS、MinGW 的区别与联系是怎样的?
  7. linux:~$,/$,~#,/#的区别与含义
  8. 在公司没事做的时候很心虚
  9. 凡人修仙传java安卓_凡人修仙传之七派六宗BT版
  10. 汪大神Java多线程编程实战