00:01
行,那咱们再接着往下看啊,那私有方法无法覆盖,我们写一个程序简单测试一下吧,好吧。Overre test06。嗯。呃,我们在这儿呢,写一个叫做over了。Over。然后T06。我们简单做一个测试啊。就私有方法不能覆盖。啊,比如说我现在我在这有个私有方法。Private void do some。来这块呢,我简单做一个测试,你了解一下就行啊。
01:00
嗯,这是over test06它的什么呀?Private method do some execute,执行啊执行好了,那这是私有方法,这是我们程序的一个入口啊入口,然后接下来在这有个子类。之类啊嗯。这叫叫什么呢?就叫T吧,T这个类干什么呀,去继承谁呀,我们的。嗯。这个类,然后尝试什么呢?重写行吧,尝试重写父类中的这个do some方法。啊,访问权限不能更,访问权限不能更低,可以更高,是不是,那比如public void do some。那这个do some方法呢,我们在这system.out.print line打印输出,我们输出什么呢?嗯,我们输出这个T,他的public do some method execute执行,我们在这怎么做呢?是这样做,各位啊,是over test06,然后呢,OT一个T。
02:27
然后接下来ot.do some。行吧,啊,那这个会调谁呢。来,我们去编译一下各位啊,我们去编译一下Java c编译overwe test06.java。编译通过之后,Java运行overre test,零六走。好,大家看最后的输出结果是什么?是over read test,零六它的private method do some execute。
03:01
也就是说这个地方输出的结果是它,这说明这个do some方法调的是哪个do some方法呀。谁的呀,是这个的吧。是这个。哎,那如果说把它变成公开的呢。变成公开的话,这个方法是不是就覆盖了。私有的不能覆盖啊,如果你这个方法是公开的,那这个方法就覆盖掉这个上面这个方法最后的输出结果就是这个结果就不一样了,来Java c呢,我们去编译Java去运行,好大家看是不是T的public do sum方法执行,但如果你是私有的,对不起,那这个就不存在覆盖这说了。那你记住这一点就行了啊,你看上面私有的话,你看它它这边是不是多肽呀,这是不是多肽,多肽负类型的引用指向一个子类型对象嘛,运行do sum方法来看一看Java c编译加运行,你看最后结果是什么呀,是over read test,零六的private method do sum,哎,这个输出了这输,所以说你这块你记住就行啊,这个技术型经过测试。
04:03
你记住就行啊,私有方法不能覆盖。私有的我们就不不能覆盖啊,也不不能覆盖静态的,不谈覆盖私有的,不能覆盖静态的。静态的啊,我们不谈覆盖,你记住这个啊,我总结一下私有总结两句话吧,私有。不能覆盖,静态不谈覆盖啊,不谈覆盖。嗯,如果要输出子类的,需要向上转型吗?那如果需要输出子类的,你得这样这样做,你只你只能把这个改成T。没办法啊,你只能给它改成T类型,给它变一下啊。私有的方法也不能调用吧?对,有道理啊,你没你有同学们,你们有没有仔细看,我在我的程序当中是私有方法写在我这个类里边的,然后我在这个main方法里面去访问私有的,我问大家,如果我换一个类的话,这个私有方法能访问不能?
05:11
能不能访问各位?就是我为什么我你没觉得我代码很诡异吗?为什么private我写到这个类里边,在这类里边写方法,你假如说我要是换一个别的类的话,我问大家个问题,我能访问这个类里边这个图算方法吗?就不行了,各位啊,所以说这块的这个这个这个代码有玄机啊。有玄机啊,有同学看出来,有同学可能没看出来。我总之呢,让你经过一个测试,你记住就行了,你不用管别的,私有方法不能覆盖就完事了啊,私有方法不能覆盖。对,你你你换个别的类,你说class,我在这儿有一个my man对吧,然后呢,有个public static VO man是不是哎主方法,然后接下来我问大家一个问题,你在这写个main方法,这个代码还能能能能能编译通过吗?你觉得。你连编译都过不去,你去哪儿,你去哪儿写这个代码,你编译过不去,为啥你编译过不去啊?因为你私有的访问不了在外部。
06:08
在外部访问不了私有的,在外部类中访问无法访问什么呀,私有的啊,你不见见不着OT里边根本就没有这个,你见不到ott里边do some,因为do萨是一个私有的,明白吗?所以也不叫覆盖啊,Java c编译over read编译一下报错了,应该是23行,你看编译报错,我do some在这个类中是private访问控制。对吧,哎,错误原因是这个23行,23行在哪,在这就这个位置有这样一个错误,对吧?Do some在over test06中是private访问控制。所以private私有你就不能这样做,你看我在写的时候,我是不是很很谨慎啊,我怎么写的,我是在我的overwe test06这个类当中写的这个private方法,然后在这写的方法在这进行测试,测出结果是输出这个,而不是下边这个输出,这说明我们私有方法是不能覆盖的。
07:09
啊,不能覆盖的。那子类能通过super,当然可以啦。行吧,Super到时候再说吧,还没讲super啊,还没讲super到时候再看啊,先不用着急啊。
我来说两句