C#简单继承示例详解——快速入门
程序员文章站
2022-03-26 21:53:28
在面向对象当中继承是非常重要的,也是面向对象的三大特性之一(继承、封装、多态),今天我们来揭开他的神秘面纱。 话不多说,我们上菜。 写好代码后我们运行看看效果! 很显然看出来,公司两个程序员都继承了程序员类。 总结: 父类包含了多少内容,派生类(子类)全部接受(包括属性 字段 方法等), 可以重写覆 ......
在面向对象当中继承是非常重要的,也是面向对象的三大特性之一(继承、封装、多态),今天我们来揭开他的神秘面纱。
话不多说,我们上菜。
using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; /** * 假设我们公司有两种程序员: * java程序员指的是用java语法写程序的程序员,用jpro这个类表示; * c#程序员指的是用c#语法写程序的程序员,用cpro这个类来表示。 * 每个类都有一个writecode()方法。 * 都属于程序员,用programmer这个类表示。 * 现在公司来了一个项目,要求派某个程序员写一个程序。 */ namespace inheritapplication { //程序员类(基类) class programmer { public string name = "我是程序员"; } //java程序员类 class jpro { public string name = "java程序员"; public string language = "我用java语法写代码"; } //c程序员类 class cpro { public string name = "c#程序员"; public string language = "我用c#语法写代码"; } //编写项目类 class pro : programmer //继承基类 { public void writeprogram(jpro program) //继承java程序员类 { console.writeline("" + program.name + ":" + name + "," + program.language + ""); } public void writeprogram(cpro program) { console.writeline("" + program.name + ":" + name + "," + program.language + ""); } } //主程序 class program { static void main(string[] args) { pro p = new pro(); jpro p1 = new jpro(); p.writeprogram(p1); cpro p2 = new cpro(); p.writeprogram(p2); console.readkey(); } } }
写好代码后我们运行看看效果!
很显然看出来,公司两个程序员都继承了程序员类。
总结:
父类包含了多少内容,派生类(子类)全部接受(包括属性 字段 方法等),
可以重写覆盖,使用override重写,可以使用base调用父类中的内容。
继承可以减少代码的冗余,也为程序的修改提供了很大的方便之处。
当然,如果结合接口那就完美了,下一篇中我们将提到接口的实现。