00:01
呃,各位,我先问一下大家啊,大家觉得这块的内容我讲的其实比较深入,那么其实用起来我不知道各位有没有感觉很轻松。就这个东西听起来其实是很难的,但是无非用的时候就是两种语法,一种是super括号,一种是super点的语法。Super括号,说白了,我这个同学们我说一下啊,这个内容我可以往简单的去讲。啊,就是怎么说呢,就是通过这个子类的勾换方去调负类的构造方法呗,对吧,就用super括号去调了,那这就是语法呗,是吧,哎,就说完了,那super点这个我怎么我我怎么给大家讲啊,我可以这样给大家讲,就是说哎,就是我们的副中有词中怎么着啊也有,那如果你想在词里面不想访问当前自己的,想访问负的,那你就用super点,这其实两句话就能把这个事儿概括完,你明白这个内容,其实其实也可以讲简单了也可以往深了讲,往深了讲呢,其实说白就是给大家画内存图。把内存图画明白,然后你理解这个内存,然后往简单的讲,其实就两句话,Super点什么时候不能省,腹中有,子中有,对吧?如果想在子中访问父类特负的特征,这边点是不能省的。
01:12
就完了是不是,所以这个东西你看你怎么去看啊,在你看你怎么看,有的时候啊,这个内容啊。你想彻底的给他掌握,你可能还需要知道它的内存图是怎样的啊,内存图是怎样的,好,那接下来咱们继续再往下看啊,来,我再给大家说一个。东西啊。嗯,来。叫super test06,大家注意看啊。Public staticman。我这里给一个什么呀,这是一个静态方法是不是,哎主方法啊,主方法入口,我再给一个实例方法。
02:07
Public void就叫do some吧,这个方法。大家看我这个Z能不能输出。可以输出吧,哎,你要调这个方法拗对象吧,你调这个方法是不是你就这个对象啊,对象拗一下来new ST等于new一个啊,拗完之后呢,ST点什么呀,Do some,这是一个实例方法,这样调就可以了。来,我们看看这里输出什么,大家还记不记得,如果输出的话,引用它会自动调用这个引用的to string方法是不是?对吧,输出引用的时候。会自动调用什么呀?引用的哪个方法呀?To string方法吧。是不是啊,突出的方法啊,就是你这样下边这样写和你上面这样写其实是一样的。
03:00
啊,输出一个this。来,我们看看这个输出的结果是什么啊。加入CBA以super test06。这Java。好,大家看编译通过了吗?运行啊,Super test06走。输出这样一个地址,是不是这个地址,我觉得大家应该能够理解,输出个this吗?是不是?哎,This叫to string方法,那这个类不是继承object吗?是不是继承object object这个类里面有没有to方法呀?有吧,他是不是调的是object里面to方法呀。对吧,这个应该能理解吧。调to方法输出结果里不是艾特符号吗?艾特符号前面是类名,这个类名谁就是它后边是个16进制的什么,哎,16进制的经过行算法转换的一个什么呀,啊叫做。哈希值是不是实际上这个东西是什么?是一个内存地址啊,内存地址可以等同看到内存地址吧,还有这样一个东西。好,这个大家没问题啊,好,我们再来看system.out。
04:02
Print line打印,我们输出super,这个super能不能输出?我们来看编译报什么错啊,走好,大家看需要什么点,看见了吗?第十行,他说需要点。需要你在super后边加个点,需要在第十行这个super后边加个点,从这你可以得出一个什么结论,各位。Super和this还有个什么区别?This可以单独用对吧。Super是不是不能单独用啊?编译报错呀,没有这个语法呀。对吧,你这你不能用,你得用super点。点某某才行,就你单独用super你是不行的。所以从这个测试你得出什么结论呢?编译报错,这个不行。
05:00
啊,同学们通过这个测试啊,得出的结论是。Super不是引用啊,Super也不保存什么内存地址,Super不指向什么任何对象。也不指象啊,任何对象,Super只是代表当前对象内部的那一块副类型的特征。各位啊,你单独输出super是不允许的啊。严格super其实并不是什么一个一个引用啊,什么不保存它,它其实也不保存内存地址的。不像一说保存内存地址指向了一个对象,它其实并不是就是这里边儿这个方框是代是个super,整个这个方框,这这这是一个super。
06:00
明白this可以单独输出,但是你没有办法输出。输出不了各位啊,没有这种语法啊。没有这种语法。别这么用,这个this可以。啊好,这是这个例子的一个说明啊。简单了解一下啊,有这么一个说法,那在这里再说一下do other,那这块我们能不能用this啊。那行啊。啊,我随随便写吧,啊super点啊某某某啊,我们来看看。编译报错啊。你看。是吧,它这找不到符号是正常的,第21和二行都是错误,无法从静态上下文中引用非静态变量,你看就非静态变量是不是super啊,This是不是,所以这块呢,这个21和22都不行啊。
07:04
第二号找不到符号是正常的,这个叉叉叉是不是这个这个这个啥也没有啊,这没有这没有啊。但是单独用它会不会出问题,我看编译会报什么错啊。你看它会只是会报这么一个错,第二行需要一个点是吧,那行我就来先来个点吧,点某某某啊,随便写的啊。再编一下啊。是不是第21和22是不是就不行了,21和22就不行了,各位啊。This和super不能使用在static静态方法中。啊,用不了,包括在这能不能用啊。这能不能用this?静态问方法能不能用啊?不行吧,哎,方法是静态的,你不能这么干啊,你说你再来一个叫什么。
08:06
是不是不允许啊?一样,这次是34和35出这个问题了。34和35啊,就这两行出这个问题,这不行。错误啊,这是错误的。This和super只能用在实例方法里面,再强调一下啊。
我来说两句