继承(java学习)

这里写图片描述

继承的概念

将一些具有相同属性和行为的类,中间属性和行为抽象到一个公共类中然后让子类去继承公共类的方式被称为继承。
通过extends关键字继承父类
继承是类和类的继承,是共同行为和共同属性抽象出来的类。
将一些具有相同属性和行为的类,中间属性和行为抽象到一个公共类中
然后让子类去继承公共类的方式。
继承需要满足is…a的结构

继承中无法继承父类的两种情况:

1.父类私有的无法继承
2.构造函数无法继承
继承中,子类无法继承父类的构造方法
1.从语法上
2.从逻辑上不允许,先有父类
继承时先划分父类的属性的存储空间,然后叠加子类属性存储空间,构成完成的存储空间,称之为对象。

继承的优点

1.代码的复用性
2.可扩展性
单继承与多继承
在C++等面向对象语言中,允许子类有多个父类。
java中的继承称为单继承,不允许多继承。

object

所有类继承Object
clone()克隆
equals 值 相等
finalize()回收方法,销毁对象
getClass() 返回对象的类型
hashCode()
toString()返回字符串表式形式(可省)
notify()唤醒 线程
wait等待 线程

方法重写

子类可以重写从父类继承的方法,从而允许子类添加或者改变父类方法。
遵循规则:
子类的的方法的返回值的类型、方法名和形式参数列表,必须和父类相同。
访问修饰符必须不小于父类的访问修饰符。如果是public 则必须public
子类中重写的异常不能抛出比父类更多的异常。
方法的重写:继承出现的,相同方法的改写。参数相同。(运行时多态)
方法的重载:内部方法相同方法,不同实现。参数列表不一致。(编译时多态)

==代表 如果两边的数据类型是基本数据类型,那么直接比较值是否相等。
如果两边的数据类型是引用数据类型,那么判断是引用是否相等。
equals()默认情况下,调用的是Object.equals(),这个方法比较的是对象的引用是否一致。但是在某些特殊的业务场景中,我们也可以重写该方法。
super()代表父类的构造方法,这行代码必须放置在第一行,如果程序不显示,编译器也会默认添加。
this()代表本类中其他的构造函数,这个没有默认添加
super()代表父类的构造函数,这个默认编译器会自动给我们添加到第一行
this代表一个对象的本身,对象的自身。

this关键字

访问本类的其他的属性
访问本类的其他方法
访问继承来自父类的财产(属性、行为)
super关键字:本类代表是继承于父类的部分财产,不代表父类
this.属性或者this.行为()
this.的作用范围:可操作本类的所有属性,可以操作本类的所有方法,还可以操作来自与继承父类的行为和属性
super.的作用范围:值可操作来自于继承父类的的财产(属性和行为)
this.的作用域大于spuer.的作用范围,直接使用this.

final

变量不能修改,类不可被继承,方法不能重写。

猜你喜欢

转载自blog.csdn.net/qq_38527427/article/details/82355507
今日推荐