09年,北京51Testing毕业学员,第34期。

C#基础-3(面向对象的高级编程)

上一篇 / 下一篇  2013-08-15 22:37:56 / 个人分类:CSharp

第5章 面向对象的高级编程
C#语言的三大特性是封装,继承,多态
 
5.1封装
封装的定义:包含和控制一组关联项的访问能力
在定义类成员时大量使用private访问修饰符体现封装的含义
重载:指在定义一个类时,将功能相同的行为定义为同名称,但参数列表不同的方法,重载的定义从使用者的角度来说
也是封装的一种具体表现,重载分为:方法重载和构造函数重载
方法重载:指在当前类中定义功能相同的多个方法时,要求定义方法名称相同,参数列表不同
Class Person
{
 public void Show(int age)
 {
  this.Show(age.ToString)
 }
 public Void Show(string name)
 {
 console.writeline(name);
 }
}
Class Program
{
 static Void Main(string[] args)
 {
 person p new Person();
 p.Show("lulu")//调用string类型的Show方法
 p.Show(27);//调用int类型的show方法
 }
}

5.2继承
在程序C#语言中继承是单继承,即只能继承一个东西,而生活中继承不是这样的
通常将被继承的失误称为父,继承的事物称为子
继承在面向对象编程中是一个非常重要的特性,在C#中,一个类可以继承另一个类,被继承的类称为父类或者基类
继承其他类的类称为子类或者派生类
5.2.1继承的使用
在C#语言中声明类时,在类名称后放置一个冒号,然后在冒号后指定要从中继承的类
class Father
{
private string _familyName;
public string Familyname
{
get{return _familyName;}
set{_familyName = value;}
}
}
class child:Father
{
}
class Program
{
staic void Main(string[] args)
{
child child = new child();
child.FamilyName ="wang";
console.writeline(child.FamilyName);
}
}
5.2.3使用protected关键字定义父类成员
public访问权限是子类和子类的对象都能使用,那么在继承的时候能不能有一个权限是只能在子类定义中才能使用父类成员,而对象不能使用父类成员的访问权限呢?
例子:
Class Father
{
protected string _FamilyName
{
get{return _familyName;}
set{_familyName = value;}
}
}
通过继承可以在子类中少写一部分代码,在实际的开发过程中,如果采用面向对象中的继承方式来编写代码,在很大程度上可以减少代码的编写量
提醒:继承会延续父类的封装,因此子类不能直接访问它定义的private成员,protected定义的类成员之一当前定义和它的子类定义可以使用,而对象不能使用protected定义的成员,即使是父类的对象(Father father = new Father();) 也不能使用FamilyName这个属性
5.25继承总结
只有准确地划分出谁是父类谁是子类,才能真正意义上地使用继承
在C#语言中继承使用的符号是冒号“:”
base关键字的含义:调用父类成员
base关键字的用法:base.父类成员,中间“.”分割
protected关键字的含义:受保护的意思
5.3多态
多态简言之就是具有多种形态,在程序设计中,通过继承的方式,一个子类可以用多种用法,可以用作它自己的类型,任何父类型,或者在实现接口时用作任何接口类型,这称为多态性,多态分为2种:
类多态
接口多态

TAG:

 

评分:0

我来说两句

Open Toolbar