Java学习随笔(第五天)

封装

        对象代表什么,就得封装对应的数据,并提供数据对应的行为。

继承

        Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起继承关系。

        

public class Student extends Person{}

        Student称为子类(派生类),Person称为父类(基类或超类)

使用继承的好处:

        可以把多个子类中重复的代码抽取到父类中了,提高代码的复用性。

        子类可以在父类的基础上,增加其他的功能,使子类更强大。

什么时候用继承:

        当类与类之间,存在相同(共性)的内容,并满足子类是父类中的一种,就可以考虑使用继承,来优化代码。

小结

1,什么是继承、继承的好处?

        继承是面向对象三大特征之一,可以让类跟类之间产生子父的关系。

        可以把多个子类中重复的代码抽取到父类中,子类可以直接使用,减少代码的冗余,提高代码的复用性。

2,继承的格式?

public class Student extends Person{}

3,继承后子类的特点?

        子类可以得到父类的属性和行为,子类可以使用。

        子类可以在父类的基础上新增其他功能,子类更强大。 

继承的特点:

1,Java只能单继承:一个类只能继承一个直接父类。

2,Java不支持多继承、但是支持多层继承。

3,Java中所有的类都直接或者间接继承于Object类。

4,子类只能访问父类中非私有的成员。

子类到底能继承父类中的哪些内容?

构造方法非私有(不能)私有(不能)
成员变量非私有(能)私有(能)
成员方法虚方法表(能)否则(不能)

虚方法表:非static,非final,非private

继承中:成员变量的访问特点

1,继承中成员变量访问特点:就近原则

2,如果出现了重名就用this,super区分。

继承中:成员方法的访问特点

方法的重写

        当父类的方法不能满足子类现在的需求时,需要进行方法的重写

书写格式

        在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类这个方法是重写的方法。

@Override重写注释

        1,@Override是放在重写后的方法上,校验子类重写时语法是否正确。

        2,加上注释后如果有红色波浪线,表示语法错误。

        3,建议重写方法都加@Override注释,代码安全。

方法重写注意事项和要求

        1,重写方法的名称、形参列表必须与父类中的一致。

        2,子类重写父类方法时,访问权限子类必须大于等于父类(暂时了解:空着<protected<public)

        3,子类重写父类方法时,返回值类型子类必须小于等于父类

        4,建议重写的方法尽量和父类保持一致。

        5,只有被添加到虚方法表中的方法才能被重写。

继承中:构造方法的访问特点

父类中的构造方法不会被子类继承。

子类中所有的构造方法默认先访问父类中的无参构造,再执行自己。(因为子类在初始化的时候。有可能会使用到父类中的数据,如果父类没用完成初始化,子类将无法使用父类的数据,子类初始化之前,一定要调用父类构造方法先完成父类数据空间的初始化

如何调用父类构造方法?

子类构造方法的第一行语句默认都是:super(),不写也存在,且必须在第一行。

如果想调用父类有参构造,必须手动写super进行调用。

总结

        1,继承中成员方法的访问特点:this调用:就近原则。 super调用:直接找父类。

        2,什么是方法重写?

                在继承体系中,子类出现了和父类中一模一样的方法声明,我们就称子类的这个方法是重写的方法。

        3,方法重写建议加上哪个注释,有什么好处?

                @Override注解可以校验重写是否正确,同时可读性好。

        4,重写方法有哪些基本要求?

                子类重写的方法尽量跟父类中的方法保持一致,只有虚方法表里面的方法可以被重写。

        5,方法重写的本质?

                覆盖虚方法表中的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值