2C面向对象.ppt

  1. 1、本文档共157页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2C面向对象

类 字段 方法 Object ClassA ClassB x x InitVar InitVar PrintVar 可以重写或隐藏实现该功能 继承中的构造函数 构造函数不能继承 在实例化子类对象时, 先执行基类的构造函数,再执行派生类的构造函数 默认情况下会调用父类的无参构造函数 可以使用base关键字显式调用父类指定的构造函数 关键字base base :用于访问基类的成员 作用: 指定创建派生类实例时应调用的基类构造函数 调用基类上已被派生类重写的方法。 this:用来访问本类的成员(可以不写) class A{ public A() { Console.WriteLine(A()); } public A(int i) { Console.WriteLine(B({0}),i); } public A(int a,int b) { Console.WriteLine(A({0},{1}),a,b); }}class B:A{ public B() { Console.WriteLine(B()); } public B(int i) { Console.WriteLine(B({0}),i); } public B(string str):base(1,2) { Console.WriteLine(B({0}),str); } public B(int i1,int i2):base(i1,i2) { Console.WriteLine(B({0},{1}),i1,i2); }} 隐式的调用父类无参的构造函数(这时父类必须有无参的构造函数) 显式的调用指定的父类构造函数 class A{ public virtual void Print() { Console.WriteLine(this is A Print()); } public void Eat() { Console.WriteLine(this is A Eat()); }}class B:A{ public override void print() { Console.WriteLine(this is A print()); base.Print(); Eat(); }} 密封类 密封类:使用sealed修饰的类 密封类不能其他类继承 sealed class MyClass{ } 密封方法 密封方法:重写父类中的虚方法上使用sealed override修饰 密封方法不能被子类重写 class A{ public virtual void Print() { } } class B:A{ public override sealed void Print() { } } class C:B{ public override void Print() { } } 这里重写,编译器报错 接口 生活中的接口概念:显卡,主板 接口与抽象类非常相似,它定义了一些未实现的方法。所有继承它的类都继承这些成员,在这个角度上,可以把接口理解为一个类的约束。 接口不能实例化 接口的成员:方法,属性、事件或索引 接口不能包括常量、字段、构造函数、析构函数、静态成员 接口中不允许声明成员上的修饰符,接口中成员总是public的 c#不允许多重继承,但允许实现多个接口(一个类可以实现多个接口,使用逗号分隔) 接口间也能继承,支持多继承 接口的声明 interface 接口名{ //接口成员} 说明:一般接口名称,首字母要以I开头 实现接口 跟继承一样,C#中也是使用“:”来实现某个接口 如果要实现多个接口,可以使用逗号分隔 public class 类名 :接口名{//实现抽象方法 } public class Rectangle : IShape{public double width; //宽public double heitht; //高 // 求矩形面积 public double GetArea() { return width* heitht; } // 还可以添加自己的一些方法 } 接口 抽象类 相同点 两者都不直接实例化。 两者都包含没有实现的方法声明 不同点 抽象类除拥有抽象成员之外,还可以拥有非抽象成员;而接口不能包含常量、字段、构造函数、析构函数、静态成员。 抽象成员不可以是私有的,而接口的成员默认都是公有的。 接口中不能含有构造函数、析构函数、静态成员和常量。 C#只支持单继承,即子类只能继承一个父类,而一个子类却能够实现多个接口。 多态性 多态是面向对象编程三大特性之一

文档评论(0)

kabudou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档