面向对象的基础知识-封装、继承、多态_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 面向对象的基础知识-封装、继承、多态

面向对象的基础知识-封装、继承、多态

 2015/3/11 16:17:22  哇刚好六个字  程序员俱乐部  我要评论(0)
  • 摘要:面向对象的原则:多组合、少继承;低耦合,高内聚继承多关注于共同性;多态着眼于差异性多态通过继承,一个类可以用作多种类型:可以用作它自己的类型、任何基类型,或者在实现接口时用作任何接口类型。这称为多态性。C#中的每种类型都是多态的。类型可用作它们自己的类型或用作Object实例,因为任何类型都自动将Object当作基类型。1publicclassanimal2{34publicstringSayName()5{6return"helloimanimal";78}9publicstringEat(
  • 标签:继承 基础知识

面向对象的原则:

多组合、少继承;低耦合,高内聚

继承多关注于共同性;多态着眼于差异性

多态

通过继承,一个类可以用作多种类型:可以用作它自己的类型、任何基类型,或者在实现接口时用作任何接口类型。这称为多态性。C# 中的每种类型都是多态的。类型可用作它们自己的类型或用作 Object 实例,因为任何类型都自动将 Object 当作基类型。

 1 public class animal
 2     {
 3 
 4         public string SayName()
 5         {
 6             return "hello im animal";
 7         
 8         }
 9         public string Eat()
10         {
11 
12             return "this is animal's eat";
13         }
14         public virtual string Call()
15         {
16         
17          return "this is animal's speak";
18         }
19     }
20     public class Bird:animal
21     {
22         public new string Eat()// 使用新的派生成员替换基成员
23         {
24             return "this is bird's Eat";
25         }
26         public override string Call() //重写虚方法
27         {
28             return "this is Bird's Call";
29         }
30         
31     }

 

 

  1. 多态分为接口多态和继承多态
  2. 若要更改基类的数据和行为,您有两种选择:可以使用新的派生成员替换基成员,或者可以重写虚拟的基成员。
 1 /*继承基类的 eat 和  call 功能*/
 2             /*
 3              * result:
 4             hello im animal
 5             this is bird's Eat
 6             this is Bird's Call
 7              */
 8             Bird bb = new Bird();
 9             Response.Write(bb.SayName() + "</br>");
10             Response.Write(bb.Eat()+"</br>");
11             Response.Write(bb.Call() + "</br>");
12 
13             /*
14              *result:
15             hello im animal
16             this is animal's eat
17             this is Bird's Call
18              */
19             animal ab = new Bird();
20             Response.Write(ab.SayName() + "</br>"); 
21             Response.Write(ab.Eat() + "</br>");
22             Response.Write(ab.Call() + "</br>");

new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。

当派生类重写某个虚拟成员时,即使该派生类的实例被当作基类的实例访问,也会调用该成员。


        

 

 

封装

封装第一原则:将字段定义为private

发表评论
用户名: 匿名