javaSE.方法的重写

因为默认比较大的是两个对象是否为同一个对象,所以这里肯定得到false,但有些情况,实际上我们希望名字,年龄,性别相同,那么这肯定是同一个人,但这里做不到.

我们需要修改一下equals方法的默认实现来完成,这里就要用到方法的重写. 

方法的重写

方法的重写不同于之前的重载,方法的重载是为某个方法提供更多种类,而方法的重写是覆盖原有的方法实现.

在子类写一个实现,把父类的方法覆盖掉,优先使用最近的.

equals 的重写

 toSring重写

这样生成上一行的那些注释

 因为println会调用toString, toString方法重写了

 原本是这样的

重写父类的父类 worker的父类Person,再父类Object

无论多少级都可以重写

 

重写test()

父类不是public 用不了 

 子类不一定要跟父类权限等级一样,子类可以比父类高权限,但是不能比父类权限低

调用对象实际类型的,就是new的什么

test 全改成public权限

静态方法不支持重写,因为它属于类本身,但是它可以被继承

基于这种方法可以重写的特性,对于一个类定义的行为,不同子类可以出现不同的行为,

比如考试,学生考试的可以得到A,而工人去考试只能得到D:

多态的体现:不同子类,对于同一个方法产生不同的结果

final

如果我们不希望,子类重写某个方法,我们可以在方法前添加final关键字,表示这个方法已经是最终形态.

final 加载String类前面

只能构造的时候才能赋值,有初始值构造也不能赋值了,只能赋值一次. 

final 用字Person类前面

无法继承了,最终形态.

可以重载但是不能重写了

父类方法private权限也不能重写,只是重新创建新方法

没报错,但只是重新创建了新方法,并不是重写.

 

super 直接使用原本的方法

  super不能再main那里用,要在类里边用,例如上面的worker

static 里面不能用super 静态的属于类的,也不能用this

父类private,子类无法重写

 

父类private子类public的情况,

正常都是public权限时

 当作使用时无法调用子类test

 正常使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值