00:00
啊,我们一起回顾一下昨天讲的内容啊。呃,昨天我们主要讲的是SPA这个框架啊,然后呢,讲的是他的第一天啊,呃,然后在这个框架里面呢,我们昨天主要讲的话题呢,是这么几个啊,第一个给大家去说了一下这个框架它的一个基本介绍,第二个呢,说了一下我们这个LC容器的一个啊,就LC容器还有这个病的一些相关配置啊,主要是这个话题,然后呢,这个里面的话呢,我们呃先说了一下LC和Di啊它的一些基本概念,然后呢,又给大家去说了一下我们的一个什么获取病的一种方式啊,讲了几个方法,然后接下来呢,就是围绕着我们依赖注入啊来去给大家讲的,首先讲了呢,我们依赖注入的几种方式,然后呢,接下来讲的就是注入的时候,我们一些可使用的一些值啊,也就是我们需要注意的一些细节问题,然后呢,还说了一下这个集合类型的啊,这个属性的一个注入啊,最后的话呢,给大家去说了一个factor病啊,这是我们配置病的另外一种形式啊,就是我们的工厂病。
01:05
然后呢,还剩下一个话题呢,就是我们的,哎,病的一个什么高级配置啊,说白了就是我们病与病之间的一个关系啊,这是我们昨天主要讲的内容啊,然后呢,接下来我们就挨个来看一下啊呃,像这个support的一些基本概念啊,这些东西呢,我就不再带大家去说了啊,你下去以后呢,你自己把它记一记啊,把它理解理解啊,这个我们就直接过了,呃,说一下我们这个搭建SPA的这个环境啊,就是如果说你想去开发一个SPA的程序,那么基本上呢,你要把这个环境先给它搭起来,那么搭环境的时候呢,我们主要的就是诶导入炸包,另外一个呢,就是创建我们的一个配置文件,对吧,你把这两件事做完以后呢,剩下的就是你去写你的代码就可以了啊,那么像这个倒价包的话呢,昨天我们主要用到的是support里面的这么四个包啊,然后呢,在今天的这个学习过程中呢,我们还会去导入一些,诶其他的一些加包啊,反正呢,你再导也是我们破的那个开发包里面,它提供好的啊。
02:05
我们直接找过来,然后呢,把它加入进去就行了啊,所以说呢,对于这个导包的这个东西呢,大家可以参照我们的这个word文档,或者说呢,你参照我课堂上所导的包就行了啊,大家也不需要去刻意的去记一下我到底导了哪几个啊,这个不需要你刻意去记的,能听懂吧,然后呢,等我们嗯这个框架讲的差不多了以后呢,会给大家去讲到一个呃me啊这样的一个工具,就是我们昨天呢也提到过,就是给大家去讲的个组件化,呃那个模块开发的时候是不是提到过这个me本这个工具,对吧?诶我们会讲到这样的一个工具啊,那么其实用了这个工具以后呢,我们对于呃炸包这个方面的一个处理来说啊,就比较简单了啊,就不需要我们这个手动的每次都把这个包导进去了啊,但是现在的话呢,我们还得一个一个的把它导入进来啊啊,然后还用到了一个com s loging啊,那么这个包的话呢,其实就是我们spo它所依赖的一个炸包了,因为在这个po的啊扣包下面它用到。
03:05
我们这个com s loggan这个包下面的内容,所以说呢,如果你想使用这个扣包,那么你必须就得把这个包也给它加进去啊,这样我们才能正常去使用啊,所以说呢,这个地方它其实体现的就是一个炸包与炸包之间的一个依赖关系啊,像这两个包也就意味着什么,它是什么依赖于我们下面这个包的啊,这个关系大家可以现在先理解一下,那么等我们讲麦本的时候呢啊,这个关系大家一定要把它明白了啊,然后呢,我们才能知道这个炸包与炸包这个依赖怎么去处理,OK,呃,再下一步呢,就是要创建一个support配置文件了啊,那这个配置文件的话呢,我们就通过sts这个工具直接给它创建出来,大家千万不要说我创建一个普通的X码文件,然后呢,再想办法把那一堆生命给它写上啊,这个是很麻烦的,而且你一不小心就写错了,那么我们就直接使用我们的sts工具,把这个配置文件呢,就直接给它创建出来就可以了。啊,这个创建现在都会了吧?啊,应该都创建过好多次了啊,OK,那么把这个环境打好以后呢,接下来我们就可以去啊,诶使用我们的po了,那么基本上的话呢,现在就是我们要学会如何在我们的spring中去配置一个病啊,配置好以后呢,我们如何把这个病对象给它获取出来啊,这就是我们昨天主要研究的一些问题。
04:22
OK,来吧,那这个hello的这个小程序啊,我就不再给大家去说了啊,应该都特别熟了,然后接着往下看,呃,下个话题呢,我们就说了一下OC容器,还有我们这个病的一个配置啊,这个是一个大话题,然后呢,在它里面的话,我们首先讲的是loc和这个Di的一个基本概念。啊,大家一定要把这个都记住了,并且呢,你要尽量的去把它都理解了啊,比如说将来人家再问你loc是什么啊,那么最起码的话,你就说到是一个控制烦躁或者是一个什么反向控制了啊,然后如果说他让你去解释一下这个细节性的东西,那么你就可以把下面的这一句话呢,简单给他什么总结性的去说一下啊,你不要去死记硬背啊,总结性的去把它说一下啊,你要提到查找了一种被动形式啊,或者说什么呀,反反转了这个资源获取的方向,然后呢,LC呢,就是容器主动的把这个资源呢推送过来,然后呢,让我们去使用,对吧,你把这几句话呢,简单的给他去提一下,也就差不多了啊,如果说呢,人家在问你更底层的东西啊,比如说问你这个loc啊,它底层到底是怎么实现的,那么其实像这个话题的话,现在我们还。
05:32
没有这个更多的这个知识啊,去支支撑我们去研究它,就是我们后面呢,大家慢慢的去理解的一些东西了啊,现在的话呢,我们还做不到明白了吧啊,所以说呢,呃,等我们学完这个框架以后呢,大家抽时间了可以啊,自己去啊,再把这个框架更底层的一些东西啊去了解了解啊,你不用说我要把它底层东西研究的特别透彻啊,但是呢,你可以把整个框架的这个底层的一些实现啊,或者这个思想啊什么的,你可以大概的去看一看啊,这就是作为你们一个扩展性的东西自己去了解了,好吧,来下一个就是我们的Di啊,叫做依赖注入啊,那么这个的话呢,其实说白了就是。
06:14
几种方式了啊,我们昨天讲的呢,有这个get的方呃,这个set方式,还有我们的构造器的方式啊,主要就是讲了这两种,那么对于这个LC和这个Di来讲啊,其实他们两个描述的话题呢,是差不多的啊,只不过呢,如过你要呃给他区分一下的话呢,这个LC呢,其实就是一个思想了,然后呢,像这个Di呢,就是我们做了一个具体的实现啊,Di呢就是做了一个具体的实现,通过我们的set方式,或者是我们的构造器的这种方式来给你完成具体的一个注入。OK,呃,下个话题呢,我们说的是LC容器在point中的一个实现啊,说白了呢,就是讲了一下LC容器的整个的结构啊,就是哎,就这个图吧,啊,大家能看到的这个图啊,然后呢,呃,其实我们总共把这个LC容器呢,分成了两大种啊,第一大种呢,就是我们的b factory,就是最底层的啊,就最底层的一个啊,或者说是一个最顶层的一个接口,叫做b factory,它是LC容器的一个基本实现,然后呢,是我们这个point的一个基础设施了,然后呢,它呢是面向破这个框架本身的,也就意味着我们是不会直接去使用它的,而我们用的呢,是在这个接口基础之上,诶,扩展出了更多高级特性的一个子接口,叫做application contact,然后它是面向我们所有的框架使用者的,也就意味着几乎所有的场合呢,你都应该去使用这个application contacts,而不是底底层的这个BFA。
07:48
啊,这个大家要知道一下,然后具体它这个结构的话呢,大家就可以通过这个图呢去看一看啊,最顶层的就是我们的b factory啊,这个里面没有截出来啊,就你就想到最顶层就是一个be factor,下面就是我们的application,然后我们还提到了一个con application contact啊这个的话呢,我们今天就会用到了啊,今天就会用到了,然后呢,呃,基本呢,这两个实现啊,一个是class past,一个是file system的,这两个呢大家也需要知道,那么我们最常用的呢,就是这个class past啊,从我们的类路径下面,然后呢,去读取一个XM文件,并创建出一个LC容器对象。
08:27
啊,所以说这个东西大家一定要知道,呃,那么除了我们现在提到的这几个呢,还有一个啊,也需要给大家去说一下,就是我们的web application contact。它是专门为我们的web应用而准备的,也就意味着现在的话我们还研究不到它,对吧,而且从我们昨天讲课的过程中,我们把那个LC整个的体系列出来的时候,其中你也看不到它。是不是啊,大家也看不到它,那为什么看不到它呢?因为它还需要去额外的导入炸包,它必须得导入我们的这个外部MVC,那个包导入进来以后呢,诶,我们才能看到这个容器,所以说呢,当我们讲到这个support mvc的时候,我们用的容器对象就是这个类型的了,叫做web application contracts,那么更具体一点的话就是一个X ma啊,Web applications。
09:17
啊,所以到时候的话呢,我们可以啊简单的呢,给大家去看一看啊,它的这个类型OK。呃,那下个话题呢,就是我们掌握的钙的病的几个方法啊,就是我们在获取这个病对象的时候,大家首先要注意我们所调用的这个钙的命方法,第一个它是在我们的并factory这个接口里面把它定义出来的,能理解吧,哎,在这个接口里面把它定义出来的,然后呢,我们在使用的时候呢,我们可以通过三个方法来去用啊,第一个的话呢,就是直接给上一个bin的ID值,然后呢,帮你去找到一个并对象,但是呢,我们在回来的时候呢,就需要做一个长句转换,而第二种方式呢,就是我们直接通过一个类型啊去找,但是这种方式的话,大家注意,如果说他能找到多个兼容类型的病啊,注意我再强调一下是多个兼容类型,我没有说相同类型对吧,那什么是兼容类型呢?
10:18
什么叫做兼容类型,大家听我说啊,比如说诶现在呢,我想通过一个A类型啊,我想通过一个A类型的到我的这个LC容器中呢,我去找一下,哎,它所对应的那个病对象,首先比如说我的LC容器中呢,就有一个A类型的病,那么它是不是能找得到的,对吧?那假如说我还有一个B类型的,但是这个B类型呢,它是继承了这个A类型的,那么大家想一下,他能不能找得到这个B类型。能不能可不可以啊,肯定是可以的嘛,为什么呢?因为你B继承了这个A以后,其实B本身它是不是也是一个A类型的,对吧?诶这种情况我们就把它叫做什么兼容类型。
11:03
理解了吧,哎,叫做兼容类型啊,可不是说一定要相等的,就是你的子类型我也是能找得着的,听明白这个意思了吧,OK,子类型我也是能找得着的啊,所以说呢,这个就是大家一定要去,呃,去记住了啊,就是我们再去匹配的时候呢,它不仅要去找你相同的类型,我还会去找你子类型啊,兼容的类型我都能给你找出来。明白了吧,这个啊,都记住了啊,然后呢,大家听我说啊,呃,如果说我找到了这个多个兼容类型的了,那么问题就出来了,什么问题啊,哎,就报错了对吧?说我期望的是单个匹配,但是呢,我找到了两个或者是更多吗?还记得那个异常吗?记不记得记得了吧?哎,就是我期望我是单个匹配的,但是呢,我最终呢,找到了两个或者说更多对吧,这是我们昨天我还单独把那个异常给你啊粘出来了是吧?我还说过说这个异常你们以后会经常会遇到,那么等你遇到这个异常的时候,你就一定要想到,肯定是我们在匹配的时候匹配到多么了。
12:11
理解了吧,OK,这个一定要记住了啊好,再来往下看,呃,第三个方法的话,就是既给一个ID又给一个类型啊,那这样的话呢,我们就直接就能获取到一个唯一的一个并对象了啊,因为ID我可以确定唯一类型呢,我又不用再去强转了,所以说呢,我们推荐大家呢啊,也不说推荐吧啊,反正我比较习惯性的去使用第三个这个方法啊,用起来比较快一点啊好吧,这是我们呃霍去病的啊,这个方法啊,就是一个钙的病方法,大家呢,也必须要把它掌握了啊,首先你要知道它是来自于哪的,再然后呢,你就要知道我们重载的几个啊分别怎么去用,来再来往下看,就是给我们病的一个属性赋值了啊,我们讲的就是依赖之物的这个方式,讲了两种啊,第一种是赛的方式啊,这个的话呢,没有什么要说的了,就是你提供好赛的方法,那么他就可以去使用了,呃,第二种呢,是通过勾造器的方式,呃,勾造器这种方式的话。
13:11
大家需要注意一下啊,就是正常去使用的话,其实也没有什么问题,但是呢,昨天我们在讲课的时候呢,给大家去演示了几种这个呃,会产生歧异的这种情况,对吧?第一个呢,就是这个参数位置的一个问题,我们可以通过一个index来解决,第二个呢,就是参数类型的这个问题,我们就必须要通过tab来去解决了,理解了吧,OK,好吧,这个我们也不再多说了啊啊还说了一个P命名控件啊,就是你再去配置这个病的时候,你再去做这个注入的时候,你可以使用我们的P命名控件啊,首先呢,你要去把这个命名控件呢,先给它导入进来啊,具体导入的话呢,就是通过我们。好,这个再来给大家去说一下啊,因为我们第一次用怎么导呢。哎,你就找到你这个配置文件啊,在这个配置文件的下面呢,有一个name space啊点一下,然后这里面所有出现的,其实你都可以去使用的啊,那么其中就有一个P啊,你把这个打上个勾,它就给你导入进来了,那么导入进来以后呢,我们就可以啊,诶通过这种方式啊,就是P冒号什么什么什么什么,诶就是给它的什么属性直接注入一个值,就省了我们这个XL的一个什么配置啊,就省了你去写那么多xma的这个标签了,好吧,这种方式的话,我们也可以去使用的啊,如果说诶你习惯性的去使用它,那也是可以的。
14:27
啊,来下一个我们就说到了这个依赖重物的时候,我们可以使用的一些值啊,就是给大家去讲的一些东西,首先我们讲的这个字面量。对吧?啊讲字面料的话呢,其实主要就是想跟大家去说一下,假如你遇到这个特殊字符的时候,你应该怎么处理啊,那么第一种方式的话,就是使用一个叫什么来着实体吧,还记不记得那个实体啊,记不记得这个实体啊,记得吧啊你你必须知道它叫什么名字哈,然后呢啊,你可以把我们常用的那几个呢,给它记一记啊,比如说我昨天说过的什么单引号,双引号,然后呢,暗的符号,或者是什么小于号大于号是吧,你可以把这几个呢常用的给它去记一记啊,然后呢啊,你用到的时候呢,你就可以迅速的把它写出来了啊也不用说呢,再去翻看我们那个手册了,对吧?那么另外一种方式的话呢,就是你一定要把这个C塔啊,这种写法呢,这个语法一定要给它记住了,就是假如说我这个实体啊,我不想去用啊,我不想去记它,那么你就把这个东西记住了明白吧,而且这种方式去用起来是特别方便的啊,不管你要写什么特殊字符,你。
15:38
只需要把这个格式写出来了,然后呢,在这个中括号里面,你想写什么,你就可以把它写出来,明白了吧,就省得你再去记那么多什么实体了,好吧,就是我们在讲字面量的时候给大家提到的,那那么下一个啊,呃,就是我讲课的时候呢,没有完全按照这个顺序讲啊,那么回顾的话,我们可以啊,啊按照这个顺序来回顾啊,下一个呢,说一下这个空值啊,空值的话呢,说白了就是给大家讲了一个闹标签啊,这个是不是特别简单。
16:06
是吧,如果你想给对象的属性赋一个空值,那么就使用这个那标签就可以了,来下一个给B的集点属性赋值啊,那么这个集联的话,大家一定要注意啊,就是啊,我们在讲的时候呢,啊,我是在一个pon里面给它定义了一个car类型的一个属性,然后我们再给这个car赋值的时候呢,诶,其中car的一个属性是没有值的,然后呢,我们就在什么在P森里面通过集联的方式呢,给这个卡的一个属性呢,赋了一个值,还记得这个过程吧,记不记得没问题是吧?OK,都记住啊啊,这是我们这个集单属性啊,它是支持的,然后下一个呢,我们就说一下这个外部以声明的病啊,也就是我们说的引用其他的一个病,就是有一个ref了啊,就是通过这个ref来去引用了啊,当然了啊,你既可以写成这个ref这种类型的,或者说呢,它也有一个什么呀,子标签是可以去使用的。
17:06
啊,这个大家都知道了吧啊,它有一个子标签也是可以去使用的啊,就是呢,你在这个property中间呢,使用一个ref,当然了啊,在这个标签里面呢,它有一个B这个属性,你要去指定一下它的什么ID是吧,就通过这种方式也是可以去用的啊,但是的话,基本上的话,我们更加习惯性的直接去使用一个什么ref啊,直接写到这儿啊呃,再下一个就是我们的内部病,那么内部病的话呢,就是假如说啊,我找不到一个病对象来给你复值,那么我可以临时性的通过内部病的方式来去构造出一个来啊,就是把一个病的定义到另外一个病的内部,我们就把它造成是一个内部病,听懂了吧,那么我们在讲课的时候呢,是在这个property里面去声明的,那么大家想一下,如如果我通过构造器的方式来注入我在我这个CONSTRUCT2里面能不能生明啊,能不能生明内部病啊,能不能也是可以的嘛,对吧,都是可以的啊,都是可以。
18:06
对的,我们在讲课的时候呢,没有把这个各个现在都给大家演示到啊,但是呢,你应该能想明白它是可以的,对吧?我在这个construct up里面,我也是可以通过什么内部病来给你临时性的构造一个对象,然后呢给你注入进去的,好吧,这个大家一定要知道啊,然后呢,我们下一个啊,就是讲了一下这个集合属性,假如说你定的这个属性是集合类型的,那么我们要通过内置的一些标签,像这个类似site map啊,来去给他什么进行值得注入啊,对于类似来讲,获得这个数组来讲,我们推荐大家呢,都去使用一个类似的标签啊,来去赋值啊,假如说你看昨天我们讲的是什么呀,那个类似里面我们放的是对象类型的吧,是不是?那么你在这个类似里面的,你就使用B或者是ref来去给他什么构造这个值,如果说你这个类似里面保存就是一个什么字面量,比如说字面值或者说字符串,那么你就直接使用这个Y6给它赋值就可以了。
19:06
能明白吧,啊,这个大家也要知道啊,好来再再下一个说一下这个map,那么对于这个map来讲的话呢,我们首先得明白它里面保存元素的时候,它的结构是什么样子的,好,它的结构呢,就是一个KV的形式,那么K跟V呢,其实又是一个N垂对象,所以说呢,在我们这个map中呢,我们首先要通过一个K啊,通过一个K呢来去给它什么啊,所以通过一个N垂呢,来去给它定义一个元素,然后在这个N垂里面的话呢,我们昨天写的那个语法是什么呀?K什么k ref y6什么Y6RF吧,对不对啊,那么其实呢,我们也可以怎么写啊,在N里面呢,通过它的子标签去写也是可以的。能理解吧,但是呢,我就没有给大家去讲这种方式,因为这种方式写起来肯定是没有我们的那种方式方便是不是啊啊,肯定我们讲的这种方式比这个要方便很多了啊,但是呢,大家也要知道一下,它也是支持这种方式的啊,其实在这个破呢,最一开始啊,就是这个它这个版本比较低的时候,它里面就没有什么什么k ref啊,什么K啊,什么什么那一种那一类东西的,都是通过标签来做的,能理解吧,都是通过标签来做的,而是在这个后续的这个高版本中呢,才给你提供出了这个像这个什么KR,什么k ref这一类东西啊,其他标签里面也是一样子的,明白了吧,最原始的就是要通过标签来去配的啊,只不过后面的话呢,又帮我们提供了一些比较简便的一些方式啊,这个大家可以了解一下啊啊呃,那么最后呢,还说了一下集合类型的一个病,就是我们说过,如果说你每次用到集合了,你都要通过这种方式来把它定义出来啊,第一个比较麻烦,第二个你。
20:52
定义出来以后呢,只能在这个位置去使用,你不能在别的地方去使用,那么我们就希望说把它单独的定义成一个病对象啊,就是我们现在所看到的一个什么集合病,能看到吧,哎,集合病,那么你要使用这个集合病的话呢,首先你得导入一个有跳的命名空间啊,或者也叫做什么名词空间,导入进来以后呢,我们就可以使用一个有T冒号啊这个语法,比如说我可以定义一个类似集合,我可以定义一个什么map集合,我可以定义一个什么S集合,都是可以的,对吧?那么你单独定义到这以后呢,你给它取上一个ID值,那么将来你在哪个be义的配置中想要用到这个集合对象了,你就直接ref去引用它就行了,对吧?这样的话呢,我们就相当于啊,可以啊多次去使用。
21:40
能明白了吧,OK,这个呢,大家要什么去理解的啊,好,嗯,来再来接着说啊,那我还说到一个factor病,这个东西现在大家理解了吗?理解了吗?理解了吧,首先你要知道它怎么用对不对,再一个呢,你提到发克特病,哎,你就要你就要想到他是怎么来帮我们创建对象的啊,这昨天给大家去说的,你看到发克多病,你就要想到get of这样的方法,明白了吧,哎,你就要想到get of这的方法,好,所以这个东西我们讲完以后,你再具体使用的话呢,是特别简单的。
22:19
啊,你就自己写个类,然后呢去实现这个接口,在它里面呢,有总共有三个重要方法,你把这三个重要方法呢,分别给他去实现一下,主要呢,就是它里面那个get object这个方法啊,这个是比较重要的啊,因为它是来给我们返回具体的一个并对象的,好吧?啊然后呢,还跟大家说过,就是我们可能会很少去写到这个去写这个发病,但是呢,我们在框架里面,人家本身呢是会用到这个发病的,并且我们在做这个框架整合的时候,我们也会用到factor病,对吧,所以说到时候我们在用到的时候,你看到它的时候一定得认识,然后呢,并且你一定要想到他是怎么来帮我们去创建出这个病对象的。
23:06
听懂了吧?啊,这个是我们最基本的要求了啊好来吧,那回顾到这以后呢,呃,我来问大家一个问题吧,是吧?啊,问一个什么问题呢。来,我写到这哈,嗯。好,我来写到这啊,问题啥问题呢?听我听好了哈,并factory factor病的区别。赶紧想是吧啊。知道我在问啥吗?知道,那你说他们的区别是啥呀?啊,首先你告诉我他们两个有可比性吗?有没有可比性?没有是吧?啊,完全没有可比性对吧?那假如说人家就问你这个问题呢,你怎么答啊?
24:22
啊啊,你就说你不要问我这种弱智的问题是吧?啊,你是在侮辱我的智商对吧,是吧,所以他问到你这个问题的时候啊,你就要告诉他并发是干嘛的,发病又是干嘛的,对吧?并发那就是我们LC容器最顶层的那个接口,说白了它就是LC容器对象。是吧,啊,LC容器的一个什么基本设施啊,它的一个定义,而这个发病呢,这就是一个工厂病啊。对吧,这就是一个工厂病啊,能明白吧,他们是没有任何这个关系的哈。听懂了吧?啊,就是长得像而已啊,就是容易放到一起来给你做一个比较对吧?像类似于这种问题特别多,在Java里面你们还遇到过什么啊,有特别多这样的问题,比如说再给你说几个是吧?啊,什么重写语啊,重载的区别是吧?你说这有关系吗?啊,他们两个放到一起比啊,有可比性吗?没有吧,来还有什么呀,Collection与什么呀,Collections的区别,这有可比性吗?啊有吗?没有吧,来final final还有什么final是吧?那个那个可能大家没学过啊来的区别,这这这有有可比性吗?
25:50
没有吧啊,所以说呢,就是因为长得像我告诉你,然后就把他们容易什么放到一起来给你做一个比较是吧?啊所以这个的话,大家什么知道一下就行了啊,那么人家在问到你这个问题的时候呢,你就要什么知道啊,就是我要把每一个它具体的这个作用或者是功能呢,给他解解释明白了就行了,听懂了吧?啊这个大家要知道啊,行吧,那这个我们就简单的说一下就过了啊哎,这几个问题都会答吧,嗯,最基本的哈,你要说这个都不会答啊,那就出问题了啊好,来下一个啊,最后一个啊,我们说一下这个病与病之间的一个关系啊,昨天呢,主要是给大家讲了两种,第一种是继承关系,第二种就是我们的依赖关系啊呃,继承里面的话呢,我们首先讲的是如何去完成一个继承,对吧,就是通过一个parent啊,通过一个什么parent啊,我们来看一下在哪呢,在这好通过这个parent我们来去实现一个进程关系啊,就相当。
26:50
大于我这个EMP02呢,去继承了我这个EMP01啊这个病,呃,那么继承以后有什么好处呢?就是我可以把这个副病里面的一些配置呢,给它继承下来啊,就是一些相同的配置的话,我们可以统一的去要定义到这个复病里面,那么对于我的子病来讲的话呢,我就不需要再去写一次了,我直接通过继承呢,把这个配置给它拿下来就行了。
27:12
好吧,这是我们主要啊用继承的时候需要做到这个,想想要做到的事儿啊,然后嗯呃,继承的话呢,也不是说所有的东西都能继承下来啊,我们像我们说到的这个I idea啊,或者这个OB啊,以及我们的obstract等等一些,它是不可能被继承下来的,听懂了吧,另外一个啊,如果说你的这个复币呢,哎,就想被作为继承来使用啊,就是他其实不想被创建对象,他只是想被用来继承,那么你就可以把它声明为一个抽象的声明为抽象了,以后呢,大家就注意啊,你就不能再去获取它的什么对象了,理解吧,呃,他就跟我们那个抽象类是一个概念了,就是只能被用来继承了,就不能被创奖对象的了,好吧,这个大家一定要记住了啊啊,然后如果你是抽象病的话呢,其实像那个什么class的这个属性就是可以啊省略掉了,不必要去指定了,因为你都不能创建对象了,你写那class也没有意义了,是吧,就没有意义了啊OK,那么这是我们的一个继承,呃,然后下一个呢,我们说的是这个。
28:12
的依赖,对于这个依赖来讲的话呢,啊,我们就把它理解为是一个前提条件就行了,是吧?啊那么昨天给大家去讲的话,就是比如说我A,呃,依赖的这个B了,对吧?那么将来如果你想把A给它实例画出来,那么首先B得先存在,如果B是没有的,那么A是不可能被实例化出来的,就相当于一个什么前提条件,这个也是好理解的吧,对吧?啊另外一个大家需要注意哈,就是呃,继承的话呢,我只能继承这么一个,但是依赖的话呢,我是可以依赖多个的,比如说呃,我想让我这个em mb03去依赖于什么多个病怎么办呢?那么其实你就在这里面呢,通过一个什么呀逗号隔开,然后再去去写你其他的什么病的ID就可以了,能听懂吧,哎,这个的话昨天没有给大家去讲哈,那么今天呢,我就简单给大家去提一下,你知道是可以的就行了啊,但是一般的话呢,我们也很少会用到多个好吧,好,那行吧。
29:12
呃,这是我们昨天啊给大家讲的内容,好简单的呢,给大家去回顾一下啊。
我来说两句