继承是派生类(子类)去实现(重写<override>、重构<new>)基类(父类)的方法或属性。从而获取在派生类中要实现的功能。
子类调用父类构造方法,在父类中有个实现姓名和年龄的构造方法但是中子类也要实现这样的功能这时子类不用再次去写这个功能只要去调用父类的功能即可。

public class Person
{
private string _name = null;
private int _age = ;
public Person(string name, int age)//父类的构造方法
{
this._name = name;//获得参数的值
this._age = age;
Console.WriteLine("您的姓名是{0},您的年龄是{1}.",
this._name, this._age);
} }
public class Studnet : Person
{
private int _id;
public Studnet(string name, int age, int IDCard):base(name,age)
//子类构造方法继承父类构造方
//把接受到的name、age两个参数交给父类的构造方法去处理
{
this._id = IDCard;
Console.WriteLine("您的身份证号码为{0}",this._id);
} }
class Program
{
static void Main(string[] args)//主函数
{
Studnet stu = new Studnet("benshou", , );
Console.ReadLine();
}
}

实现效果

您的姓名是benshou,您的年龄是12.
您的身份证号码为99999
在C#中定义了,子类去调用父类的方法时,会先去执行父类的方法之后再去执行子类的方法

还是以子类继承父类,现在是子类实现父类的重写和重载
重写只是对方法里面的功能实现重新做的了编写,并没有对方法的参数进行添加、改变、删除
重载则是对方法参数的个数、位置、参数类型进行了改变。
重写ShowME方法

public class Person
{
public virtual void ShowME(string name,string school,string Class)
{
Console.WriteLine("我在{0}学习",Class);
Console.WriteLine("我叫{0}.我毕业与{1}",name,school);
} }
public class Studnet : Person
{
public override void ShowME(string name,string school, string Class)
//重写了父类的ShowME方法
{
Console.WriteLine("姓名{0}\n毕业学校{1}\n曾读班级{2}",
name,school,Class);
}
}
}
class Program
{
static void Main(string[] args)//主函数
{
Student stu = new Studnet();
stu.ShowME("benshou","浙江金融职业学院","电子商务(7)班");
Console.ReadLine();
}
}

实现效果
姓名benshou
毕业学校浙江金融职业学院
曾读班级电子商务(7)班
重写的父类方法时,必须指明被重写的方法是虚方法(virtual关键字)。在子类重写父类方法时必须有重写关键字(override)这样才能重写父类的方法

重载ShowME方法

public class Person
{
public void ShowME(string name,string school,string Class)
{
Console.WriteLine("我在{0}学习",Class);
Console.WriteLine("我叫{0}.我毕业与{1}",name,school);
}
}
public class Studnet : Person
{
public new void ShowME(string name)
{
Console.WriteLine("姓名{0}",name);
}
}
class Program
{
static void Main(string[] args)//主函数
{
Studnet stu = new Studnet();
stu.ShowME("benshou");
Console.ReadLine();
}
}

实现效果
姓名benshou
子类重载父类方法,子类必须指定重载的关键字(new),而父类被重载的方法则可以不用指定哪个方法被重载的关键字(virtual)。重载一个方法,是对一个方法重新进行了编写从方法的参数到方法体,唯独方法的名称没有进行改变。重载也可以对原来没有返回类型的方法(void),改变为有返回类型的方法。总体来讲,重载处了方法名不能被改变为另外什么都能重新定义(方法作用域、返回类型、方法体、方法参数)

C# 继承实现父类方法、重写、重载的更多相关文章

  1. Java基础进阶:继承重点摘要,继承详解,方法重写注意事项,方法重载与重写的区别,抽象类,代码块, 附重难点,代码实现源码,课堂笔记,课后扩展及答案

    继承重点摘要 *继承的特点: 子类在初始化之前,一定要先完成父类数据的初始化 子类在初始化之前,一定要先访问父类构造,完成父类数据的初始化 系统在每一个构造方法中默认隐藏了一句super(); 如果我 ...

  2. python 父类方法重写

    class Bird: def isWing(self): print("鸟有翅膀") def fly(self): print("鸟会飞") class Os ...

  3. odoo开发笔记 -- 多个子类继承同一个父类方法的执行顺序

    场景描述: odoo模块化开发的架构理念,科学&高效, 可以让很多业务场景,尽可能松耦合:让开发人员的主要精力,关注在当前的业务逻辑: 所谓「前人栽树,后人乘凉」,模块整体好比一棵大树, 开发 ...

  4. JAVA中继承时方法的重载(overload)与重写/覆写(override)

    JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...

  5. Objective-c 类的继承 方法重写 方法重载

    一.类的继承 Objective-c中类的继承与C++类似,不同的是Objective-c不支持多重继承,一个类只能有一个父类,单继承使Objective-c的继承关系很简单,易于管理程序. Obje ...

  6. Java 方法重载,方法重写(覆盖),继承等细节注意

    1.方法重载(method overload)的具体规范 如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载. 一.方法名一定要相同. 二.方法的参数表必须不同,包括参数的 ...

  7. java代码-------继承的方法----重写还是重载

    总结:是自己不听讲吧,不懂啊 感觉父类的方法,子类可以重载,只要参数个数不同,重载与返回值没有关系 重写绝对是可以的.但答案是只能重写啊 package com.s.x; public class T ...

  8. 04 Python的继承、方法重写、super()类、父类私密属性的调用

    继承 A类继承B类,A即可获得B类的全部公共属性和方法(包括内置属性和方法).格式如:class A(B): class Animal: def sleep(self): print("zZ ...

  9. [UE4]蓝图继承方法:重写父类方法时,增加父类方法调用

    包括构造函数也可以调用父类方法 事件也可以调用父级的事件

随机推荐

  1. loadrunner测试TCP协议服务器性能

    loadrunner测试TCP协议服务器性能 . 性能loadrunner测试c 最近对服务器的性能感兴趣,于是开始研究了一阵子loadrunner如何做采用TCP协议交互的服务器的性能测试,对loa ...

  2. php 通过类名获取类的文件地址

    $reflector = new ReflectionClass("Child"); $fn = $reflector->getFileName(); return dirn ...

  3. 用谷歌浏览器Chrome浏览jQuery Mobile页面需要配置Tomcat服务器

    在浏览jQuery Mobile 页面中,除了 Chrome浏览器出错外,其他的浏览器都ok: 这里,是因为需要单独配置 Tomcat 服务: 1.先配置java jdk: 2.下载,安装,配置,To ...

  4. Thinkphp图片水印和文字水印

    1.Thinkphp图像处理 在TP框架中,我们经常用到图片上传,我最近写了很多关于图片上传的文章,thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成等文章,今天写一下关于图 ...

  5. POJ 3259 Wormholes【最短路/SPFA判断负环模板】

    农夫约翰在探索他的许多农场,发现了一些惊人的虫洞.虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M≤2500)条路径 ...

  6. python脚本实现ipv6的ddns功能

    话说在国家的推动下,ipv6地址已经开始优先在三大运营商推广,我自己家用的就是联通宽带100M光纤入户.有一次,不经意间发现,我们的光猫竟然获取到了ipv6地址,于是我开始浮想联翩. 说干就干,我先是 ...

  7. [NOIP2016]天天爱跑步(树上差分+线段树合并)

    将每个人跑步的路径拆分成x->lca,lca->y两条路径分别考虑: 对于在点i的观察点,这个人(s->t)能被观察到的充要条件为: 1.直向上的路径:w[i]=dep[s]-dep ...

  8. BZOJ 2288 【POJ Challenge】生日礼物(贪心+优先队列)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2288 [题目大意] 给出一列数,求最多取m段连续的数字,使得总和最大 [题解] 首先我 ...

  9. Adaptive Query Optimization in Oracle Database 12c (12.1 and 12.2)

    https://oracle-base.com/articles/12c/adaptive-query-optimization-12cr1

  10. 通过dbf文件恢复oracle

    可能有些人会由于各种原因经常重装系统,但是系统里面总是有一些比较重要的软件在重装后就不能用了.比如oracle数据库,众所周知数据库如果通过dmp导入导出麻烦不说,还很耗时,特别是像笔者一个数据库就有 ...