4.18
继承
向上抽象,想象这些类型的共同属性和行为
extends 叫做继承
a通过extends继承了b
a子类,b父类
为什么要继承:减少代码量,提高了在父类中的维护性,提高了代码的扩展性,
所有的类型最顶层的父类型是0bject,即使我们没有手动去写extends Object
java继承的基本语法:
public class 子类 extends 父类{
}
一个子类可以有多个父类
一个子类只能直接继承一个父类
除了构造方法不能被继承,其他都可以被继承
构造方法和普通方法的区别
构造方法是在创建对象时自动调用一次,用于初始化对象;
构造方法(也称为构造函数)是类的特殊方法,主要用于创建对象时初始化对象,即为对象成员变量赋初始值。构造方法总是与new运算符一起使用在创建对象的语句中。
普通方法则是在对象创建后,通过对象调用来执行特定功能,可以被多次调用。
普通方法,则是类中定义的用于执行特定任务的代码块。普通方法可以有返回值,也可以没有(即void类型)。
构造方法是不能被继承的,但是可以调用
所有子类的构造方法,第一句代码一定默认是super()
每个字类的构造方法,第一句diamante一定是用来调用父类的gaff的,如果没有显示调用,默认调用过的是super()
方法重写
在继承关系中,子类和父类拥有相同的行为,但是子类的行为实现和父类不一致,如何解决,通过方法重写
# 方法重写和方法重载的区别:
重载,在一个类中,出现多个同名方法,但是参数列表不同
重写,在继承关系中,子类拥有和父类一样的行为,但是方法的实现不一致
区别:重载是多个方法,重写是一个方法
语法:
访问修饰符:private不能被重写
可选修饰符:static和final方法不能被重写
返回类型:父类的返回类型不小于子类的返回类型
方法名:一致
参数列表:一致
异常列表:子类抛出的异常不大于父类抛出的异常
final关键字
finnal和static修饰的无法重写
final可选修饰符,表示最终的
fina列表修饰的内容
修饰的类我们叫做最终类,不能被继承
修饰的变量成为常量,值不能更改
修饰的方法叫做最终方法,不能被子类重写
to String方法
调用对象的toSting方法目的是想让这个对象以字符串的形式展示
如果直接使用toString,调用的是Object的toString,没什么意义
所以,如果我们想把对象朱哪位字符串形式来展示对象内容,可以重写toString
toString在什么地方使用:
代码调试的时候,如果不确定对象的属性值,
可以重写对象的toString方法,将属性打印到控制台
Object
,hasCode描述的不是地址,是对象的一个标识
Object是所有类型的父类,
int hashCode()返回对象的哈希码值
打印对象的时候,结果中就有
==
这个符号比较数据类型:比较值是否相等
比较引用数据类型的时候就是比较对象的地址是否相等
equals比较对象相等,比较对象的内容是否相等
浙公网安备 33010602011771号