00:00
好,刚才呢,我们代码已经写完了,其实呢,还有一个小点没有写好,什么小点呢,我先做一个打印输出,大家就能看到啊。这个什么意思,这是不是去查看我这个实例对象,它的构造函数是谁呀,对不对,也就说这个输出应该是谁,应该是不是sub大写上对不对对,但现在我们来看一看它是不是。他现在是谁super看到吧,为什么是super,它这个属性在我这个这个对象本身里面吗?没有,我们说谁有这个属性来着,圆形对象是不是这个属性,那圆形对象有我的实力对象能不能看见。
01:05
可以,只是我现在的原型对象是什么实力啊,是不是super的实力,那super的实力去读看的时候读的是谁,那不就是super吗?是吧,那我问大家,你说construct有没有在这个对象上面。在这个对象是什么?在这个对象身上有的数据吗?那到底在哪呢?那看属性来我们为这个图是吧。看属性在哪有知道吧,是在这个上,是在我这个上面吗?现在看属性在哪,在这个上面吗?还是在这个上面。
02:07
好像大家不太清楚是不是在哪。在这是吗?来我们来看一下,是不是看一下就知道了,这边怎么看了。把它去掉是吧,再查看一下。打开。本身身上有没有有没有好,接着看它的原型有没有没有。有没有有,那你说在哪个里面,是不是在我的这一个这实例对象身上。对吧,而它上面的constructor指向谁,是不是指向他呗,对不对,而我正好这样对,这样不对,你想这不很恐怖吗?
03:08
你我这个萨的实力,他的他的那个构造器的那个属性竟然指向的是super,这样不太好。是吧,是不是得于,那它指向谁指向下,那怎么样,它指向S呢?啊看着在这里。让他点点等于。嗯。是不是啊?能不能理解?就是让子类型的什么子类型圆型子类型的圆形的。
04:08
Contractor指向谁?那那个子类形实际上是不是够函数啊,这样才是好的,这样的话是不是就能保证所有我这个S的实力,看到的这个看看到的都是谁萨。这必然要保证这一点,不然的话,看一个错的,那不太好了。虽然我们现在,其实我们现在还没用到这个东西,对吧,这个属性还没用,但是你得想这个属性指向一个错误的地方,应该是不太好的。也就是说我不写这一个影响到我去读这个父类的属性吗,方法吗?影不影响没有影响到对不对,但是有一个这样的一个属性,它指向一个错误的地方是不太好的。
05:03
啊。这个大家要注意一下哈。行,那下面我们说另外一个叫借用构造函数继承。首先要说明一点,这个金额不行,提成是个假的。说白了就不是真的地层,是假医生,我写一写大你知道吧,还是一样先来个人对吧?你不要是觉得举这个例子很low啊,主要是大家很熟练,所以没什么负担,好,我写一个函中我再写一个。我方法我就不写了,再写一个叫什么呢?叫student,好student它有哪些属性呢?有类是吧,有还有一个什么。身价是吧,好,下面。
06:01
下面呢,我们是不是要将这三个数据进行初始化是吧?来,我写一条语句,看看大家懂不懂。上面这个肯定懂,那上面这个懂不懂不要说好来看懂上面这个鱼这一条。Po点酷。干嘛去了,相当于写了一条什么鱼,这个地方要知道相当于就什么Z点。点什么?搞啥了,就是平常的时候都好像很懂了,就道观系不懂了,你不要被那外形所迷惑了,你就该怎么说怎么说,是不是点破ose是个函数吧,传什么传什么。
07:09
那也就相当于,不就是相当于把这两句话搬到这里来执行吗。是不是啊,对不对,也就是说我不写这句话,我写我写下面的三句行不行,行不行,行什么,那我不写下面两句,我写上面一句行不行。比如说你这个this不是port的实例吗?嗯,我们一旦一再跟大家去强调这个this是动态指定的。对吧,现在我们去调用的时候,也就person函数中的this是谁,是他。对不对?而这个对思是谁呢?那看你怎么用了是吧?来,我握一个S等于另一个student,传啊20啊传14000。
08:10
你说现在的问题就是我能不能去调用S点内能不能可以吧,可以。人说,老师,你为什么不用这句话呢?能写这句话吗?能不能,不能,为什么不能,因为我认识,我也就是我认意思,我就是六出来这个实例上有这个破损函数吗?有这个方法吗?没有,但没有我能不能借用一下,可不可以,而这个扩去干嘛去了,是不是借用执行,谁来执行这个破损?是谁?是我的S?
09:04
对吧。对,这就是说的,我相当于是不是student借用了port的构成函数,这个构函数是吧?啊OK,我能不能访问到这个内部和一可以吧,可以来看一下。但是就是。真的有什么继承吗?有吗?就是没有的,哪有什么继承,实际上就简化代码而已。好看,正面通过不是通过这个通过什么。是不是这个括方法去调用负类型的构函数啊,能看懂吧,嗯,好,但这里面啊,一再跟他强调这是什么假的啊,为什么还要说它呢?其实我们前面一种啊,我们这种搞法是为了得到什么,是不是得到副类型的那个方法呀。
10:06
能不能理解是为了得到负的运行方法?你没发现我这里面写我这里面写死吗?看到了吗?我这里面写死了,我为什么要写死?其实是不太不太好写活的。不太好写过了,也就是说正常情况下我是不是应该这么写。是吧?能看到吧,我应该这么写,能看到不,那这么搞的话,其实就不太不太方便去去整了啊OK,因为我这个地方呢,我让我溜啥呢。是吧,我是不是要指定一个动态的值,但现在我根本没法确定,我我就不需要子类型的对象,我这个指令对象创建出来是为了得到子类型的这个属性吗?不是,是为了能够最终能看到这个方法。最终能看到这个方法啊,OK。
11:03
那怎么样,最终我们的,诶我们的使用方式。其实是将两种方式进行什么呢?金组合。也就是说,我们的最后的继承人叫什么呢?组合继承。什么意思?来再给大家写一下,呃,前面这个啊,我也不写了啊,这个我不写了。最后不行了,好,看到我我这一个person是不是也会有一些方法。是吧,那个方法应该放哪去,是不是圆形上面,比如说set name是不可以吧,可以等于一个什么方写接着搞一个name可以吧,可以接着写类点name等于name是吧,A级我就把下写一个是个意思啊好,下面我接着定义了一个它。
12:09
我这个里面是不是也可以有什么呢?Student点点set a set set等于function这一个是什么?Price z.price等于price好了。我把这个去掉啊,不要看了。那我们要想能真正产生继承关系,我应该在这个你协调语句。正矩线来说,应该写两条鱼域,哪两条?首先是子类型的原型等于负类型的实例,但这个里面我不需要传任何数据,我主要我这么做是为了干嘛去的,为了能够最终看到这个方法。
13:03
能理解吧?为了能够看到方法而已。属性,我是不是在这里整好了。也就说白了,扩是为了是不是整属性的,为了初始化属性的,而我这么做。是真正的去产生继承,最终为了能看到是负类型的方法,类型的方法语句刚写过,写什么student protect construct等于student,这个是不是修正一下。记得啊,修字这个属性。这个其实次要的,重要的是上面这条。
14:03
好,这样做啊,这样做,上面这种做法是为了得到什么?是不是得到属性。能不能懂啊,两个的目的一样吗?不一样,那也就最终我属性和方法是不是都可见,那也就是说我这么,诶我怎么我这么搞了,以后我过一个SD,另一个student是吧,哪一个汤姆来一个24,哪一个15000好这边。下面啊,我S能不能搞一下呗,对不对啊,S能不能set。可以吧,啊1600好,最后我的S能不能去访问内部,能不能去访问A级了,还有包括什么,如果一切运行正常的话,就说明是可以的。
15:13
来,我们来看一下应该是什么包裹。24。16000。可不可以,可以,大家觉得一万六高吗?还是有没有希望?看着都好笑,就感觉太高了是吧?啊,但是我敢肯定,咱班一万六的以上的肯定肯定不止三个。不说多了啊,说多了,到时候太多了我也扛不住啊,因为每个班都会有那么几个同学是薪水挺高的。好,那这样的话呢,我们就把这一个啊继承模式给大家说了说,其实重点还是这个圆形链继承是吧。
16:09
重点还是这个啊,其实这一个是一个,我们说是个什么假的,但假的也有用,不是说假的就没用,能不理解重点大家要理解这个扩方法,其实这个这个时候才真正看到了阔的作用。以前完全是为了测试测试有这个语法。但此时,他才真正是有意义的。最后我们真正用的还是这个组合的方式,就两两个语法都有用到。才是一个比较完整的啊,继承的模式好。行。对吧。
我来说两句