今天给各位分享w619刷机的知识,其中也会对i7 2600k进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文导读目录:
红米notepro和note哪个好(从红米NotePro换到红米NotePro+,用了一个月,谈谈真实的感受
从红米NotePro换到红米NotePro+,用了一个月,谈谈真实的感受
作为一个数码爱好者,这几年我用过的手机不在少数,无论是千元机还是旗舰机都用过不少,虽然我的主力机是iPhonePro,但依然不耽误我使用安卓手机,由于工作等其他原因,我的生活离不开安卓手机,所以我手中还有一款红米NotePro作为备用机,目前使用依旧很流畅,由于GB存储已经爆满,我忍不住入手了红米NotePro+顶配版。
w619刷机(i7 2600k)除了存储不够用之外,红米NotePro运行依旧很流畅,所以我把它留给了家里人使用,而红米NotePro+是我在双十一时入手的,现如今刚好使用了一个月,索性用它对比红米NotePro,看看提升了哪些,谈一谈真实的感受,也希望能够帮助到犹豫要不要换红米NotePro+的朋友。
i7 2600k里氏替换原则阐述什么道理(如何理解里氏替换原则
如何理解里氏替换原则
里氏代换原则(LiskovSubstitutionPrinciple,LSP):所有引用基类(父类的地方必须能透明地使用其子类的对象里氏代换原则告诉我们,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。例如:我喜欢动物,那我一定喜欢狗,因为狗是动物的子类;但是我喜欢狗,不能据此断定我喜欢动物,因为我并不喜欢老鼠,虽然它也是动物。例如有两个类,一个类为BaseClass,另一个是SubClass类,并且SubClass类是BaseClass类的子类,那么一个方法如果可以接受一个BaseClass类型的基类对象base的话,如:method(base),那么它必然可以接受一个BaseClass类型的子类对象sub,method(sub)能够正常运行。反过来的代换不成立,如一个方法method接受BaseClass类型的子类对象sub为参数:method(sub),那么一般而言不可以有method(base),除非是重载方法。里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。在使用里氏代换原则时需要注意如下几个问题:()子类的所有方法必须在父类中声明,或子类必须实现父类中声明的所有方法。根据里氏代换原则,为了保证系统的扩展性,在程序中通常使用父类来进行定义,如果一个方法只存在子类中,在父类中不提供相应的声明,则无法在以父类定义的对象中使用该方法。()我们在运用里氏代换原则时,尽量把父类设计为抽象类或者接口,让子类继承父类或实现父接口,并实现在父类中声明的方法,运行时,子类实例替换父类实例,我们可以很方便地扩展系统的功能,同时无须修改原有子类的代码,增加新的功能可以通过增加一个新的子类来实现。里氏代换原则是开闭原则的具体实现手段之一。()Java语言中,在编译阶段,Java编译器会检查一个程序是否符合里氏代换原则,这是一个与实现无关的纯语法意义上的检查,但Java编译器的检查是有局限的。
C#里氏替换原则,is和as,有关于内存的一些知识
原则上来讲,子类对象可以赋给父类对象,也可以说子类替换父类,并且出现在父类能够出现的任何地方。?反过来说,父类对象是不能替换子类对象的,这种特性称为里氏替换原则?.子类可以隐式的转换为父类?.父类必须强转子类classPerson{publicvoidSay(){Console.WriteLine(“父类说“);}}classZhang:Person{publiewvoidSay(){Console.WriteLine(“张说“);}}classLi:Person{publiewvoidSay(){Console.WriteLine(“李说“);}}classMainClass{publicstaticvoidMain(stringargs){//Personp=newZhang();//p.Say();//Personp=p;//编译通过//Zhangp=p;//编译不通过,因为父类必须强转为子类,也就是说将p强制转换为Zhang类型//Zhangz=newZhang();//Lil=newLi();//z=(Zhang)l;//编译不能通过}}?is:相当于判断,AisB?A是不是B或者A是不是B的子类??as:先判断,在转换。(它比传统的强制转换相对来说要安全一点,因为传统的强制转换,?一旦转换失败的话,程序就会崩溃,那么使用as关键字,如果转换不成功,就转换成空类型这里将涉及到关于使用new关键字之后,内存中的一些变化??Bb:定义栈上的引用变量b,此时为空引用,也就是null.存于栈,用来保存将来引用对象的地址.??b=newB:通过new关键字创建B类的对象,对象的实例保存在托管堆,CRL在建立实例实例对象的时候,?w619刷机(i7 2600k)?还会创建它的类型对象.对象实例在堆中的内存包括,字段,类型对象指针,同步索引块.类型对象指针指向的??是类型对象??类型对象在堆中的内存包括类型对象指针,索引块,静态字段,方法列表.??Aa=b:声明一个类型为A的引用变量a,并将其实际地址指向b所指的那个对象实例??a.MethodF():??当调用一个方法的时候,会直接检查这个对象a的类型,首先找到堆中的类型对象,查看其实否有该方法,??如果有,直接调用.如果没有,则通过类型对象的类型对象指针向上继续查找,直到找到该方法.??找到了该方法之后,它会先检查该方法是否为virtual,如果非虚直接调用.如果是虚方法,即有virtual??修饰的关键字,则引用变量a去找对象的实例类B,查找该方法是否有重新实现了该虚方法,如果有,执行.??没有继续向上查找.直到找到为止.??由于MethodG为虚方法,则会找到实例B,又由于B重写了MethodG,因此直接输出.
w619刷机的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于i7 2600k、w619刷机的信息别忘了在本站进行查找喔。