C# 子类父类方法同名,三种处理方式?

1.重载:参数数量或者参数类型不同;
2.重写:override 关键字重写父类方法,父类的方法是virtual 或 abstract修饰的,

 1 using System;
 2 class A
 3 {
 4     //虚方法
 5     virtual public void sayHello(){
 6         Console.WriteLine("A sayHello");
 7     }
 8 }
 9 class Test:A
10 {
11     override public void sayHello(){
12         base.sayHello();//访问父类的成员,使用关键词base
13         Console.WriteLine("Test sayHello");
14     }
15     static void Main( string [] args )
16     {
17         Test t = new Test();
18         t.sayHello();
19         Console.ReadLine();
20     }
21 }

overrde 虚方法

 1 using System;
 2 abstract class A //含有抽象方法的类,抽象类
 3 {
 4     //抽象方法
 5     abstract public void sayHello();
 6 }
 7 class Test:A
 8 {
 9     override public void sayHello(){
10         Console.WriteLine("Test sayHello");
11     }
12     static void Main( string [] args )
13     {
14         Test t = new Test();
15         t.sayHello();
16         Console.ReadLine();
17     }
18 }

override 抽象方法

3.隐藏父类方法:使用关键字new直接覆盖父类方法

原文地址:https://www.cnblogs.com/GoldenEllipsis/p/10355594.html

时间: 2024-10-09 10:07:03

C# 子类父类方法同名,三种处理方式?的相关文章

重温数据结构:二叉树的常见方法及三种遍历方式 Java 实现

读完本文你将了解到: 什么是二叉树 Binary Tree 两种特殊的二叉树 满二叉树 完全二叉树 满二叉树 和 完全二叉树 的对比图 二叉树的实现 用 递归节点实现法左右链表示法 表示一个二叉树节点 用 数组下标表示法 表示一个节点 二叉树的主要方法 二叉树的创建 二叉树的添加元素 二叉树的删除元素 二叉树的清空 获得二叉树的高度 获得二叉树的节点数 获得某个节点的父亲节点 二叉树的遍历 先序遍历 中序遍历 后序遍历 遍历小结 总结 树的分类有很多种,但基本都是 二叉树 的衍生,今天来学习下二

面试题:增强一个对象的方法的三种方式

面试题:增强一个对象的方法的三种方式 1. 继承 使用这种方式必须满足的条件是:被增强的方法的所在类能被继承,并且这个对象已经明确知道. 举例: 有一个接口Person,里面有一个方法run() package com.itzhouq.demo1; public interface Person { public void run(); } 类NormalPerson实现了这个接口Person package com.itzhouq.demo1; public class NormalPerso

创建二叉树的两种方法以及三种遍历方法

二叉树的两种创建方法和三种遍历方法 这里的两种创建方法,一种值得是 数据结构上面的创建方法: 方法一 代码如下: 二叉树的结构定义如下: typedef struct BinaryTreeNode{ char value; struct BinaryTreeNode *left; struct BinaryTreeNode *right; }; - c语言版 void CreateBinaryTree(BinaryTreeNode **T) { char data; scanf("%d"

089 重用父类方法的两种方式

目录 一.直接调用指定类的方法 二.通过super()关键字 2.1 使用方法 2.2 使用super调用父类方法 2.3 super()的调用顺序 重用父类方法有两种方式: 指名道姓的使用,直接调用指定类的方法 super关键字使用 一.直接调用指定类的方法 指名道姓的使用,跟继承没有关系.但也能完成需求 class Person: school = 'xxx' def __init__(self,name,age): self.name=name self.age=age def study

js的三种继承方式及其优缺点

第一种,prototype的方式: //父类 function person(){ this.hair = 'black'; this.eye = 'black'; this.skin = 'yellow'; this.view = function(){ return this.hair + ',' + this.eye + ',' + this.skin; } } //子类 function man(){ this.feature = ['beard','strong']; } man.pr

C++的三种访问权限与三种继承方式

三种访问权限 我们知道C++中的类,有三种访问权限(也称作访问控制),它们分别是public.protected.private.要理解它们其实也很容易,看下面了一个例子. 父类: class Person { public: Person(const string& name, int age) : m_name(name), m_age(age) { } void ShowInfo() { cout << "姓名:" << m_name <&l

三种继承方式和三种访问权限

 也就是说子类只能访问父类的保护和公有成员,而对象只能访问公有成员. 继承方式 1. 三种继承方式不影响子类对父类的访问权限,子类对父类只看父类的访问控制权.     2. 继承方式是为了控制子类(也称派生类)的调用方(也叫用户)对父类(也称基类)的访问权限. 3. public.protected.private三种继承方式,相当于把父类的public访问权限在子类中变成了对应的权限. 如protected继承,把父类中的public成员在本类中变成了protected的访问控制权限:priv

C++中的三种继承方式

1,被忽略的细节: 1,冒号( :)表示继承关系,Parent 表示被继承的类,public 的意义是什么? 1 class Parent 2 { 3 4 }; 5 6 class Child : public Parent 7 { 8 9 }; 2,有趣的问题: 1,是否可以将继承语句中的 public 换成 protected 或者 private?如果可以,与 public 继承有什么区别? 3,有趣的尝试编程实验: 1 #include <iostream> 2 #include &l

Hibernate的Api以及三种查询方式

Hibernate  Api |-- Configuration       配置管理类对象 config.configure();    加载主配置文件的方法(hibernate.cfg.xml) 默认加载src/hibernate.cfg.xml config.configure("cn/config/hibernate.cfg.xml");   加载指定路径下指定名称的主配置文件 config.buildSessionFactory();   创建session的工厂对象 |--