JavaSE(继承与重写)

1.1 继承的概念

1.1.1 继承的概述 is-a

继承是面向对象的核心特性,是面向对象的学习重点。

继承是代码复用的重要方式,是类与类之间的一种关系。

从类与类之间的设计关系来看,子类必须属于父类的一种时,才会继承。

父类抽取出了共性的内容,子类可以在父类基础上扩展新的属性与行为。

子类拥有父类的所有属性与方法,无需重新定义。并且可以直接使用非私有的父类成员。

例展示d系

1.2 继承的代码格式

1.2.1 继承格式说明

使用extends关键字完成继承关系。

格式:

class 子类 extends 父类 {
    
}

注意:所有的类都直接或间接继承自Object,所以如果没有继承其他类,则默认继承Object类。即Object是所有类的父类(或超类)

1.3 子类通过get&set方法访问父类成员变量

当父类的成员变量用private修饰后,子类无法访问父类的成员变量,但是如果父类提供了public修饰的get/set方法,则子类可以通过get/set方法,正常访问父类的成员变量。

 

1.4 继承的特点

1.4.1 特点概述

Java支持单继承

Java支持多层继承

父类定义了继承树中共性内容,子类定义了该类个性内容。

在结合多态后,能使用父类时尽量使用父类,提高程序扩展性。

第2章 方法重写及继承内存图解

2.1 方法重写的概念与格式

2.1.1 方法重写的概述

当子类继承父类后,拥有了父类的成员并可以直接调用父类非私有方法。如果子类认为父类提供的方法不够强大,子类可以按照子类自身的逻辑重新定义继承过来的父类方法,这个重新定义父类方法的过程叫做方法重写。

方法重写后,调用该方法时不再调用父类的方法,而调用子类重写后的方法。

举例:

当描述一个人类(父类)时,它具有吃饭,睡觉等功能

中国人类(子类)吃饭比较复杂,使用筷子吃饭,则可以继承原有的人类。并重写吃饭功能,在其中修改为更为复杂的用筷子吃的逻辑即可。

(注:在学习完多态和抽象类后我们会对方法重写有更深的理解)

2.2 Override注解解释

2.2.1 Override

子类重写父类的方法时在方法上添加 @Override注解,表示该方法是子类重写父类中的方法。

2.3 方法重写注意事项

2.3.1 注意事项概述

发生在继承关系中

方法名称必须相同

参数列表必须相同

访问权限相同或子类方法访问权限更大(访问权限顺序public>默认)

返回值为一般必须相同(并不适用于所有情况)

子类抛出异常比父类小

2.4 继承后子父类构造方法调用先后顺序

2.4.1 继承中子父类构造调用顺序概述

在每次创建子类对象时,我们均会先初始化父类内容,再初始化其子类本身内容。目的在于子类对象中包含了其对应的父类存储空间,便可以包含了其父类的成员,如果父类成员非private修饰,则子类可以随意使用父类成员。

代码体现在子类的构造方法调用时,一定先调用父类的构造方法。


继承与重写总结

能否被继承,重写

是否能被继承?
      1.成员变量、成员方法  可以继承
      2.私有的属性   可以继承
      3.静态的成员   不可以继承,静态成员是所有实例共享
      4.构造方法     不可以继承

 是否能进行方法重写?
      1.成员变量不存在重写的问题     
      2.构造方法   不可以重写
      3.静态方法   不可以重写
      4.私有方法   不可以重写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值