方法重载overload,方法重写override,隐藏new

方法重载overload,方法重写override,隐藏new

1.方法重载overload:同一个类中有两个或多个方法名相同但参数不一致的方法。(返回值类型并不能区分函数是否是重载),允许用相同的名称不同的参数个数来调调用多个方法。

class Person

{

public void SayHello()

{

Console.WriteLine("Hello");

}

public void SayHello(string word)

{

Console.WriteLine(word);

}

}

2.方法重写override:子类重写父类中的方法。当方法进行重写时,必须使用override修饰。

A.对虚方法的重写:重写父类中的方法,对父类中的方法进行覆盖。

public class Person

{

public virtual void SayHello()

{

Console.WriteLine("Say hello!");

}

}

public  class Chinese : Person

{

public override void SayHello()

{

Console.WriteLine("中国人问好!");

}

}

B.对抽象方法的重写:重写父类中的方法,父类必须是abstract修饰,父类中的方法也必须用abstract修饰,父类中的方法不实现。

abstract  class Person

{

public abstract void SayHello();

}

class Chinese : Person

{

public override void SayHello()

{

Console.WriteLine("中国人问好!");

}

}

3.隐藏new在子类中写一个和父类名字一样的非虚方法,会让父类中的函数被隐藏,使用new关键字来显示隐藏父类的方法。

public class Person

{

public void SayHello()

{

Console.WriteLine("Say hello!");

}

}

public  class Chinese : Person

{

public new void SayHello()

{

Console.WriteLine("中国人问好!");

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 8,816评论 1 24
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,408评论 19 139
  • 1. [C#语言基础]请简述拆箱和装箱。 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何...
    胤醚貔貅阅读 10,314评论 1 29
  • 秋风凉, 雁飞翔, 往事几苍茫。 南山望, 绿林巷, 人影不成双。 北海浪, 船几行, 一碗孟婆汤。 叹过往, 忆...
    愿大力大阅读 3,138评论 0 1
  • 别看我很轻松的样子,其实我也挺累的。什么都好奇,但又仿佛什么都不会。我是不是该放下一切好好休息一回呢?但是我什么都...
    带着泪光的鱼阅读 1,293评论 0 0