c#继承与扩展方法区别
1、扩展方法
扩展方法是一种特殊的静态方法,可以像该类的实例方法一样使用,能够在不添加新的派生类,重新编译的情况下,向现有类添加功能
注意事项:
a、必须定义在非泛型静态类中
b、必须是public的静态方法,并且第一个方法必须使用this关键字修饰
c、使用using关键字显示导入扩展方法命名空间后才能使用
d、实例方法优先于扩展方法执行
e、可以在空引用上调用扩展方法
f、扩展方法可以被继承
2、partial
partial关键字拆分一个类、结构、接口、方法的定义至多个文件中,每个源文件中包含类型或方法定义的一部分,在编译时被组合成一个完整的类。
使用场景:
a、一个类分布于多个独立文件中跨域让多位程序员同事对该类进行处理
b、当使用自动生成文件的源文件时,将自动生成的代码与手动添加的代码分布在不同文件
注意事项:
a、不分类的各个部分必须具有相同的可访问性
b、如果将任意部分声明为抽象类
c、如果任意部分声明了其基类型,则整个类继承该类
d、部分类的各个部分都必须在同一程序集和同一模块(.exe 或 .dll 文件)中进行定义。
e、部分方法必须以partial开头,不能包含out参数,不能为virtual方法,返回值必须为void
f、可以为已定义并实现的分部方法生成委托,但不能为已经定义但未实现的分部方法生成委托
3、继承
a、面向对象的三大特征之一
b、通过继承可以重用、扩展、修改积累中的行为
c、基类具有传递性
Struct结构是否支持继承?
如何防止类被进一步派生?
如何在派生类中隐藏类成员?
继承缺点:
a、类只支持单继承
b、破坏封装,子类与父类之间紧密耦合,子类依赖于父类的实现,子类缺乏独立性,基类细节对派生类可见
c、子类不能改变父类的接口
e、不支持动态继承,在运行时,子类无法选择不同的父类
4、继承之模板方法
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可冲定义该算法的某些特定步骤
使用场景:
a、有多个子类共有的方法,且逻辑相同
b、重要的、复杂的方法,可以考虑作为模板方法
优点:
a、封装不变部分,扩展可变部分
b、提取公共代码,便于维护
c、行为由父类控制,子类实现
缺点:
每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。
5、组合
什么是组合?
组合是通过对现有的对象进行拼装(组合)产生新的、更复杂的功能
优点:
a、不破坏封装,整体类与局部类之间松耦合,彼此相互独立
b、支持动态组合,在运行时可以设置不同的局部实现
c、整体可以对局部类进行包装,封装局部类的接口,提供新的接口
缺点:
a、创建整体类的对象时,需要创建所有局部类的对象
b、设计复杂度增高
6、建造者模式(在后续的文
继承和赠与的区别
法律分析:第一,继承者继承的是被继承人的遗产,其继承的起止点是被击沉人死亡。转让,则是在出让人活着的时候,将名下财产转让给受让人的方式。第二,继承遗产不需要向被继承人缴纳任何费用。转让则会涉及到议价及交割。第三,继承在绝大多数时候,都是以伦理(血缘)关系为基础的。转让则基本上以经济关系为主。
法律依据:《中华人民共和国民法典》
第一千一百二十一条 继承从被继承人死亡时开始。相互有继承关系的数人在同一事件中死亡,难以确定死亡时间的,推定没有其他继承人的人先死亡。都有其他继承人,辈份不同的,推定长辈先死亡;辈份相同的,推定同时死亡,相互不发生继承。
第一千一百二十二条 遗产是自然人死亡时遗留的个人合法财产。依照法律规定或者根据其性质不得继承的遗产,不得继承。
第一千一百二十三条 继承开始后,按照法定继承办理;有遗嘱的,按照遗嘱继承或者遗赠办理;有遗赠扶养协议的,按照协议办理。
一、继承和赠与的区别是什么
1、继承和赠与的区别是:
(1)被继承人的遗产赠与是指被继承人将个人财产赠给国家、集体或者法定继承人以外的人;
(2)而继承则包括法定继承和遗嘱继承,法定继承是指按照法定继承顺序继承,遗嘱继承是指被继承人立遗嘱将个人财产指定由法定继承人的一人或者数人继承。
2、法律依据:《中华人民共和国民法典》第一千一百二十四条
继承开始后,继承人放弃继承的,应当在遗产处理前,以书面形式作出放弃继承的表示;没有表示的,视为接受继承。
受遗赠人应当在知道受遗赠后六十日内,作出接受或者放弃受遗赠的表示;到期没有表示的,视为放弃受遗赠。
二、遗产继承方式有哪些
1、遗嘱继承,即被继承人在生前订立遗嘱,指定继承人继承自己的遗产;
2、遗赠即被继承人生前订立遗嘱,将遗产赠与国家、集体,或者法定继承人以外的人;
3、遗赠抚养协议即被继承人与扶养人订立协议,由扶养人负担被继承人生养死葬的义务,被继承人的全部或部分财产在其死后转归扶养人所有。该方式主要出现在老人无人赡养的情况下;
4、法定继承,即在上面三种情况都不存在的情况下,法律根据亲属关系的远近确定的顺序。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!