C#高级编程-对象的继承

继承的基本使用

继承的特点

  • 继承的顺序不可逆性:继承是从上往下依次继承,而不能逆序进行。
  • 继承延续性:在继承顺序中,下一级具备上一级的属性和特征。
  • 继承使用的必要性:代码复用,避免重复。一处更新,处处更新。

关于继承自己的理解

  • 继承在我的经验上来看,继承是为了能减少重复,让子类通过继承父类的的方法亦或是属性,来让众多子类可以同时使用父类的公共部分,而可以同时拥有自身的特性。
  • 子类和父类这一对名次也是形象的说明了,他们之间的关系,儿子继承了父亲的部分财产,通过多年的打拼,儿子也拥有之间的各类资产,这些资产是自己打拼得来,不从父亲那里继承, 其他兄弟姐妹,也并不享有自己资产的继承权,而父亲的资产,拥有继承权的都可以继承父亲的资产。

继承中的关键字

Protected关键字

  • 通过使用protected关键字,可限制成员只允许子类访问,不允许其他非子类访问被修饰的成员。且子类只能在内部使用。

抽象类与抽象方法

public class Water()
{
public string name;
public string height;
public abstract void Drink(){}
}
public class water1():Water
{
public override Drink(){
Console.Write("1号水喝了");
}
}
public class water2():Water
{
public override Drink(){
Console.Write("2号水喝了");
}
}
List<Water> water=new List<Water> ();
当 water1、water2都继承自water时
water.add(water1);
water.add(water2);
//当使用foreach循环取出集合中的数据时
foreach(var item in water)
{
//如果直接取出water不进行判断后进行子类转换,无法获取子类中的成员,因为子类继承父类的成员,只能被子类访问。
//所以判断
if(item is water1)
water1.Drink();
else if(item is water2)
water2.Drink();
}

当一个集合拥有众多子类时,都需要如此转换,太过繁琐,这时抽象类就排上了用场。

当子类都实现父类的抽象方法时
在如上的场景中遍历取出对象执行方法时,将会识别出不同子类的方法(也就是重写后的抽象方法)
这一过程也淋漓尽致的体现了“多态”,解决了程序的拓展问题。
foreach(var item in water)
{
//此时不再需要进行判断
water2.Drink();
}

抽象类的定义与方法声明规范

  • 一个抽象类中可以没有任何抽象方法,但当需要为一个类添加抽象方法时,这个类必须是抽象类。

抽象类的概念与使用要点

  • 使用关键字abstract修饰的类,称为抽象类。
  • 抽象类只是用来列举一个类的具有的行为,不能单独通过创建对象来使用,如Water water=new water.Func();是错误的
  • 抽象类中可以有抽象方法,也可以没有任何抽象方法。
  • 抽象类不能是静态的(static)的或密封的(sealed)。

抽象方法的概念与使用要点

  • 在抽象类中使用abstract修饰的方法,称为抽象方法。
  • 抽象方法必须在抽象类中定义,不能在普通类中使用。
  • 抽象方法只是一个方法的声明,不能有任何方法体。
  • 抽象方法仅仅表示一个应该具有的行为,具体实现由其子类实现。
  • 抽象方法在子类中被实现(重写),必须使用关键字override。
  • 子类必须重写父类的所有抽象方法,除非子类本身也是抽象类。
  1. 掌握C#面向对象中的三大特性之继承、多态。
  2. 掌握C#面向对象中的接口技术。
  3. 掌握大型项目开发中的三层架构设计方法。
  4. 掌握面向对象中的设计模式。
  5. 对面向对象编程完成总体性的认识和把握。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值