面向对象三大特性:封装,继承与多态,这里讲一下后两个特性。
继承
继承:指一个对象延续另一个对象的特征(属性和方法),并且有自己的个性特征(属性和方法)。
必要性:代码复用,避免重复;一处更新,处处更新。与封装不同的是,封装主要是封装一个方法、一个类,使用时直接调用不能更改;继承主要讲需要的属性和方法(主要是方法)进行“封装”,且要使用时还可以继续扩展自己的特性(继续增加、修改方法--方法重写)。
使用广泛:C#里,Object类是所有类的基类,winform里面所有控件都继承于Control类。
父类与子类:当A继承于B时,A是子类(或叫派生类),B是父类(或叫基类或超类)。
传递性:A→B,B→C,C具有A的特性。
单根性:一个子类只能有一个父类,一个父类可以有若干子类。
protected:只有父类与子类才能访问。
sealed:密封类,不允许有子类,有利于保护知识产权。
父类与子类关系:父类完全包含于子类,子类完全包含父类:
举例说明一下继承的好处
需求说明:
设计玩具猫、玩具狗相关程序,要求:
属性:姓名,自身颜色,自己类别,喜好食物
动作:自我介绍,跳舞,赛跑
常规实现:
Models--Cat
1 namespace InheritanceTest 2 { 3 class Cat 4 { 5 public string Name { get; set; } 6 public string Color { get; set; } 7 public string Kind { get; set; } 8 public string Favorite { get; set; } 9 10 public void Introduce() 11 { 12 Console.WriteLine("Hi, My name is{0}, I'm a {1}, I'm in {2}, and I like eat {3} very much! ",Name,Kind, Color,Favorite); 13 } 14 15 public void Dancing() 16 { 17 Console.WriteLine("Now I dancing for you!"); 18 } 19 20 } 21 }