当前位置: 首页 > news >正文

平时发现同学做的ppt找的材料图片不错_不知道从哪些网站可以获得网络seo招聘

平时发现同学做的ppt找的材料图片不错_不知道从哪些网站可以获得,网络seo招聘,king 主题WordPress,局门户网站建设工作汇报文章目录 1. 基础概念1.1 override1.2 new 2. 示例代码1. override 关键字2. new 关键字 3.完整示例测试3.1 基类和派生类的定义3.2 测试代码3.3 运行结果 结论 在 C# 中,override 和 new 关键字用于控制类之间的成员方法的隐藏和重写。理解它们之间的差异和使用场景…

文章目录

  • 1. 基础概念
    • 1.1 override
    • 1.2 new
  • 2. 示例代码
    • 1. override 关键字
    • 2. new 关键字
  • 3.完整示例测试
    • 3.1 基类和派生类的定义
    • 3.2 测试代码
    • 3.3 运行结果
  • 结论


在 C# 中,override 和 new 关键字用于控制类之间的成员方法的隐藏和重写。理解它们之间的差异和使用场景对于设计灵活且易于维护的代码至关重要。在这篇博客中,我们将详细探讨这两个关键字的用法,并通过示例来说明它们的实际应用。

1. 基础概念

1.1 override

override 关键字用于重写基类中已经声明为 virtual 或 abstract 的方法、属性或索引器。使用 override 关键字可以提供基类方法的新实现。它的主要特点包括:

  • 多态性:通过重写方法,派生类可以实现特定的行为。
  • 基类引用:即使是基类引用,调用重写的方法也会执行派生类的实现。

1.2 new

new 关键字用于隐藏基类中的成员(方法、属性或事件)。当使用 new 关键字时,派生类中的成员将隐藏基类中的同名成员。它的特点包括:

  • 不支持多态性:基类引用仍会调用基类的方法,而不是派生类的方法。
  • 名称隐藏:派生类中的成员遮蔽了基类中的同名成员,但两者仍然存在于不同的作用域中。

2. 示例代码

1. override 关键字

override 关键字用于子类中覆盖(重写)父类中的方法。这样做可以让子类提供特定的实现,以满足其对方法的个性需求。

示例 1:使用 override 覆盖父类方法

using System;class Animal
{public virtual void MakeSound(){Console.WriteLine("Animal makes a sound");}
}class Dog : Animal
{public override void MakeSound(){Console.WriteLine("Dog barks");}
}class Program
{static void Main(string[] args){Animal myAnimal = new Animal();Animal myDog = new Dog();myAnimal.MakeSound();  // 输出:Animal makes a soundmyDog.MakeSound();     // 输出:Dog barks}
}

在这个例子中,Dog 类继承自 Animal 类,并覆盖了 MakeSound 方法。当 myDog.MakeSound() 被调用时,它将输出 “Dog barks”,而不是 “Animal makes a sound”。

2. new 关键字

new 关键字在C#中有两个主要用途:

它用于隐藏继承自基类的成员(方法、属性、事件等)。
它用于在接口中提供实现。
示例 2:使用 new 隐藏继承的方法

using System;class Animal
{public virtual void MakeSound(){Console.WriteLine("Animal makes a sound");}
}class Dog : Animal
{new public void MakeSound(){Console.WriteLine("Dog barks");}
}class Program
{static void Main(string[] args){Animal myAnimal = new Animal();Animal myDog = new Dog();myAnimal.MakeSound();  // 输出:Animal makes a soundmyDog.MakeSound();     // 输出:Dog barks}
}

在这个例子中,尽管 Dog 类覆盖了 MakeSound 方法,但是由于 new 关键字的使用,基类 Animal 的 MakeSound 方法不会被隐藏。

示例 3:使用 new 在接口中提供实现

using System;interface IMyInterface
{void MyMethod();
}class MyClass : IMyInterface
{public void MyMethod(){Console.WriteLine("Interface method implementation");}
}class Program
{static void Main(string[] args){IMyInterface myClass = new MyClass();myClass.MyMethod();  // 输出:Interface method implementation}
}

在这个例子中,MyClass 类实现了 IMyInterface 接口,并使用了 new 来提供 MyMethod 的具体实现。

3.完整示例测试

3.1 基类和派生类的定义

using System;public class Animal
{// 一个虚方法,可以在派生类中被重写public virtual void Speak(){Console.WriteLine("Animal speaks");}// 一个普通方法,可以在派生类中被隐藏public void Sleep(){Console.WriteLine("Animal sleeps");}
}public class Dog : Animal
{// 重写基类的虚方法public override void Speak(){Console.WriteLine("Dog barks");}// 使用 new 关键字隐藏基类的同名方法public new void Sleep(){Console.WriteLine("Dog sleeps");}
}

3.2 测试代码

接下来,我们可以编写一个测试程序,来演示 override 和 new 的行为。

class Program
{static void Main(string[] args){Animal myAnimal = new Animal();myAnimal.Speak();  // 输出: Animal speaksmyAnimal.Sleep();  // 输出: Animal sleepsAnimal myDog = new Dog();myDog.Speak();     // 输出: Dog barks (多态性)myDog.Sleep();     // 输出: Animal sleeps (基类方法)Dog realDog = new Dog();realDog.Speak();   // 输出: Dog barksrealDog.Sleep();   // 输出: Dog sleeps (新定义的方法)Console.ReadLine();}
}

3.3 运行结果

运行上述程序,输出结果如下:

Animal speaks
Animal sleeps
Dog barks
Animal sleeps
Dog barks
Dog sleeps

分析

  • 多态性:在示例中,myDog 是 Animal 类型的引用,但它指向一个 Dog 对象。调用 Speak 方法时,输出是 Dog barks,这就是多态性的体现。myDog.Sleep() 调用的是基类的 Sleep 方法,输出 Animal sleeps,因为 Sleep 方法没有被标记为 virtual。

  • 隐藏行为:realDog.Sleep() 调用的是 Dog 类中定义的新 Sleep 方法,输出 Dog sleeps。这表明使用 new 关键字隐藏了基类中的同名方法。

结论

override 和 new 是C#中用于版本控制和多态的两个关键字。使用 override,我们可以为子类提供特定的方法实现,而 new 则用于在继承体系中隐藏基类的成员或为接口提供实现。这两个关键字极大地增强了C#语言的灵活性和表达力。

http://www.hkea.cn/news/452503/

相关文章:

  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤
  • 湘潭学校网站建设 z磐石网络网站关键词优化教程
  • wordpress多程序用户同步汕头seo排名
  • 旅游网站 建设平台分析百度seo一本通
  • 怎么用dw做网站app开发网站
  • 昆山做网站的公司有哪些seo整站优化推广
  • 网站建设谈单情景对话青岛seo百科
  • 网站做自适应好不好网页分析报告案例
  • 大连手机自适应网站建设公司seo诊断站长
  • 有哪些好的网站十大电商代运营公司
  • 个人网页设计欣赏网站整站优化快速排名
  • 多少钱立案seo 公司
  • 医学类的网站做Google百度怎么优化排名
  • 手机网站怎样做枸橼酸西地那非片的功效与作用
  • 邯郸做wap网站的公司六六seo基础运营第三讲
  • 六安市建设银行网站seo编辑的工作内容
  • seo外包平台福州百度快照优化
  • 橙子建站广告怎么投放竞价网络推广
  • 中国公司查询网站网络公司起名
  • wordpress邮箱内容更改一键关键词优化
  • 楼市最新消息2022年房价走势seo网络推广经理
  • wordpress免费中文企业主题seo权重优化软件
  • 周口网站建设哪家好济南专业seo推广公司