Day5
一、今天学习到了内部类,问题有些多,很多内容视频只是按照一个黑箱讲出,而不给出原因。
1、子类重写的方法,其访问权限必须大于等于父类同方法的访问权限。视频只是说了这句话,没有说为什么。讲完多态后有些理解:
package com.myhome.test;
//父类
class Fu {
public void test(){
System.out.println("这是父类");
}
}
class Zi extends Fu{
private void test(){/*这里我将public 换为private,编译出错,原因就是访问权限降低*/
System.out.println("这是子类");
}
}
public class Test{
public static void main(String[] args) {
Fu fu=new Zi();//以父类引用数据类型指向子类对象
fu.test();
}
}
我们在main方法中希望调用的是子类的Test(),这也是多态的意义。如果允许子类重写的方法访问权限下降,如降为private,就与此矛盾。
2、接口中的静态方法只能接口直接调用,无法通过实现类对象调用,。理解:一个类可以有多个接口,遇到重名的方法要重写,但是静态方法无法重写,干脆不能继承好了。
3、** 多态访问的个人总结是可以有方法重写就找子类,没有就找父类。因为成员变量,静态成员方法的运行是找父类,非静态方法找子类。
4、但是多态的机制具体怎么运行感觉还需要看jvm内部运行。
二、今天没有看专业课。之前想当然的认为4个月可以上完自己下载的课程,目前来看我有些自大了。只是看完课程,对着课程做项目,感觉4个月时间够。但是今天的多态,纯粹黑箱,内部的内存划分,指针具体指向,JVM怎么判断方法重写是否发生,完全没讲。把我看致郁了,就很难受。。慢慢来吧,只能这么告诉自己。

