昨天决定记录一下每天的琐碎以及获得的知识,但是呢,毕竟很懒,所以,第一天计划就搁浅了,哈哈。补吧,能写几天是几天
毕竟是回忆么,就没有琐碎日常了。
今天(1.1)晚上看了阿玮的Java的基础知识,哎呀,还是很焦虑的,因为,零零散散的看了很久了,看完就忘,现在就连上部还没看完,安慰一下自己吧,只能慢慢来了。
知识点:今天看的是继承的那一部分知识
子类能继承父类的什么东西呢 ?
构造方法 | 非私有(×) | private(×) |
成员变量 | 非私有(√) | private(√)能继承但是不能用 |
成员方法 | 非私有(√) | private(×) |
那子类使用父类的方法是怎么使用的呢,是一层一层的向上找么??
No No No,那样太慢了,如果父类无线多,那岂不是找不完了,所以呢,就有了虚方法表!
A类 extends B类 extends C类
C类会先将可能用到的方法塞入到虚方法表中给到B,然后B把自己的可能会用到的方法塞到虚方法表中给到A,调用方法时A.方法C的时候,会先在虚方法表中找,找不到才会一层一层的向上找
只有非privte,static,final的方法才会进入虚方法表中。
这个就是成员变量在继承中的特点,就近原则!
name在局部开始找,找不不到在向上找
this.name是从本类中开始向上找
super.name是从父类开始向上找
成员方法也是同样,但是,你相同的写同一个方法名字,有个专有名词:方法重写
在idea中重写方法要在代码前面加一个 @Override
如过你重写的方法不对,Override下面会有波浪线提示
子类重写父类方法时,访问权限 子 >= 父 返回值 子类 <= 父类;
建议,就直接和父类一模一样就好,反正也记不住;
只有被添加到虚方法表中的方法才能被重写;
重写的本质就是覆盖虚方法表中的方法
好了,以上就是我的昨天学的知识,就一丢丢,累死了,今天还没看课,唉,估计也是得明天补今天的博客了,还是那句话吧,慢慢来吧。