【从Java转C#】第四章:继承 叁歲伎倆 2022-11-21 06:55 155阅读 0赞 > 欢迎关注我的公众号“爱敲代码的小黄”,一起努力,一起学习! ### 目录 ### * * 继承 * * 继承的类型 * 实现继承 * 接口 * * 定义和实现接口 ## 继承 ## ### 继承的类型 ### * 实现继承和接口继承 * 实现继承:表示一个类型派生与一个基类型,拥有该基类型的所有成员字段和函数 * 接口继承:表示一个类型只继承了函数的签名,没有继承任何代码 * 多重继承 * 一个类派生自多个类 ### 实现继承 ### * 实现简单的继承 class student { public int age; public string name; } interface student1 { void test(); } class teacher : student, student1 { public void test() { Console.WriteLine("我是实现的接口"); } } * 虚方法 * 把一个基类函数声明为 virtual ,就可以在任何派生类中重写该函数 class student { public int age; public string name; public virtual void test() { } } class teacher : student { public override void test() { } } * 隐藏方法【不建议使用】 * 如果签名相同的方法在基类和派生类中都进行了声明,但该方法没有分别声明为 virtual 和 override,派生类方法都会隐藏基类方法 class student { public int age; public string name; public void test() { } } class teacher : student { public new void test() { } } * 调用函数的基类版本【base】 class student { public int age; public string name; public void test() { } } class teacher : student { public new void test() { base.age = 1; } } * 抽象类和抽象函数【abstract】 * 抽象类不能实例化,抽象函数不能直接实现,必须在非抽象的派生类中重写 * 如果类包含抽象函数,则该类也是抽象的,也必须声明为抽象的 abstract class student { public int age; public string name; public abstract void test(); } class Teacher : student { public override void test() { } } * 密封类和密封方法【sealed】 * 对于类来说,表示不能继承 * 对于方法来说,表示不能重写 * 派生类的构造函数 * 和Java差不多,先实例化父类再实例化子类 * C\#中是不包含静态代码块和代码块的 * 修饰符 <table> <thead> <tr> <th align="center">修饰符</th> <th align="center">应用于</th> <th align="center">说明</th> </tr> </thead> <tbody> <tr> <td align="center">public</td> <td align="center">所有类型或成员</td> <td align="center"><strong>所有代码均可以访问该项</strong></td> </tr> <tr> <td align="center">protected</td> <td align="center">类型和内嵌类型的所有成员</td> <td align="center">只有派生的类型能访问该项</td> </tr> <tr> <td align="center">internal</td> <td align="center">所有类型或成员</td> <td align="center">只能在包含它的程序集中访问该项</td> </tr> <tr> <td align="center">private</td> <td align="center">类型和内嵌类型的所有成员</td> <td align="center">只能在它所属的类型中访问该项</td> </tr> <tr> <td align="center">protected internal</td> <td align="center">类型和内嵌类型的所有成员</td> <td align="center">只能在包含它的程序集中和派生类型的任何代码中访问该项</td> </tr> </tbody> </table> ## 接口 ## interface Istudent { void test(); } class teach : Istudent { public void test() { } } * 接口不能有构造函数,也不能有字段 * 接口定义中不允许声明关于成员的修饰符、接口成员总是公有的,不能声明为虚拟或者静态 ### 定义和实现接口 ### * 接口的名字通常以I开头 * 如果一个类实现了接口,必须重写接口里面的方法 * 如果一个接口A实现了接口B,类C实现了接口A,则类C需要重写接口A和接口B的方法
相关 【C++】第13章: 类继承 文章目录 第十三章 类继承 13.1 一个简单的基类 13.1.1 派生一个类 13.1.2 构造函数:访问权 - 日理万妓/ 2023年09月27日 20:53/ 0 赞/ 128 阅读
相关 【从Java转C#】第八章:委托、lambda、事件 目录 委托、lambda表达式、事件 委托【Delegate】 简介 声明委托 实例化委 朴灿烈づ我的快乐病毒、/ 2022年12月19日 06:12/ 0 赞/ 124 阅读
相关 【从Java转C#】第七章:运算符和类型强制转换 目录 运算符和类型强制转换 运算符 条件运算符 类型的安全性 隐式转换:自动的进行 柔情只为你懂/ 2022年12月19日 00:54/ 0 赞/ 10 阅读
相关 【从Java转C#】第四章:继承 > 欢迎关注我的公众号“爱敲代码的小黄”,一起努力,一起学习! 目录 继承 继承的类型 实现继承 接 叁歲伎倆/ 2022年11月21日 06:55/ 0 赞/ 156 阅读
相关 c++第四章 c++第四章 //第一小题 \include <iostream> using namespace std; class Complex\{ pub 谁借莪1个温暖的怀抱¢/ 2022年08月08日 05:16/ 0 赞/ 284 阅读
相关 C++ Primer Plus 学习笔记 第十四章 保护继承 多重继承 保护继承 保护继承会将基类的共有成员和保护成员继承为派生类的保护成员 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text 谁践踏了优雅/ 2022年01月23日 07:29/ 0 赞/ 397 阅读
相关 第四章 继承 继承的类型: 实现类型:表示一个类型派生与一个基类型它拥有该基类型的所有成员字段和函数。 接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码。 C 素颜马尾好姑娘i/ 2021年09月29日 08:00/ 0 赞/ 426 阅读
还没有评论,来说两句吧...