- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.4 面向对象之门
?1.4.1 继承-“子承父业”
C#中的继承规则:
继承是可以传递的。
派生类是对积累的扩展
构造函数和析构函数(?)不能被继承
派生类如果定义了与继承而来的成员同名的新成员,那就可以覆盖已继承的成员
类可以定义虚方法,虚属性以及虚索引指示器,他的裴胜磊能够重载这些成员从而使类可以展示出多态性
派生类智能从一个类中继承,可以通过接口来实现多重继承
示例:
public class ParentClass
{
public ParetClass()
{
Console.WriteLine(父类构造函数);
}
public void SayHello()
{
Console.WriteLine(I am ParentClass)
}
}
public class ChildClass:ParentClass//ChildClass 继承ParentClass
{
public ChildClass()
{
Console.WriteLine(子类构造函数);
}
public static void Main()
{
ChildClass cc=new ChildClass();
cc.SayHello();//显示“我是父类”
}
}
View Code
访问基类成员
public class ParentClass
{
public ParetClass()
{
Console.WriteLine(父类构造函数);
}
public void SayHello()
{
Console.WriteLine(I am ParentClass)
}
}
public class ChildClass:ParentClass//ChildClass 继承ParentClass
{
public ChildClass()
{
Console.WriteLine(子类构造函数);
}
//访问基类成员:1.base,2显式类型转换
public void Say()
{
base.SayHello();//方法1
}
public static void Main()
{
//base.SayHello(); //注:从静态方法中使用base关键字是错误的
ChildClass cc=new ChildClass();
cc.say();
cc.SayHello();
((ParentClass)cc).SayHello();//方法2
}
}
View Code
隐藏成员
public class ParentClass
{
public ParetClass()
{
Console.WriteLine(父类构造函数);
}
public void SayHello()
{
Console.WriteLine(I am ParentClass)
}
}
public class ChildClass:ParentClass//ChildClass 继承ParentClass
{
public ChildClass()
{
Console.WriteLine(子类构造函数);
}
//隐藏基类成员
public new void SayHello()
{
Console.WriteLine(我是子类);//隐藏了基类成员
}
public static void Main()
{
//base.SayHello(); //注:从静态方法中使用base关键字是错误的
ChildClass cc=new ChildClass();
cc.SayHello();//我是子类
}
}
View Code
密封类和密封方法
using System;
public sealed class ParentClass
{
public ParetClass()
{
Console.WriteLine
文档评论(0)