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

带域名的网站打不开房地产网站模板

带域名的网站打不开,房地产网站模板,有网站前端如何做后台,五八同城找工作招聘信息多态性是面向对象编程的一个核心概念,它允许你使用一个父类引用来指向一个子类对象。这可以使程序具有可扩展性,并且可以用来实现一些高级编程技术,如接口、事件、抽象类等。 多态相关的概念 以下是一些在C#中使用多态性的关键概念&#xf…

多态性是面向对象编程的一个核心概念,它允许你使用一个父类引用来指向一个子类对象。这可以使程序具有可扩展性,并且可以用来实现一些高级编程技术,如接口、事件、抽象类等。

多态相关的概念

以下是一些在C#中使用多态性的关键概念:

虚方法 (Virtual Methods)

在C#中,一个类可以声明一个或多个虚方法。一个虚方法有一个基础实现,可以在派生类中被覆写。为了覆写一个方法,派生类必须声明该方法,并使用override关键字。然后,当通过基类引用调用一个虚方法时,会根据引用的实际类型来调用正确的方法实现。

抽象方法 (Abstract Methods)

一个抽象方法是一个没有实现的方法,它在抽象类中声明,并且必须在任何非抽象的派生类中实现。当通过基类引用调用一个抽象方法时,会根据引用的实际类型来调用正确的方法实现。

接口 (Interfaces)

在C#中,一个接口可以被任何类实现,接口定义了一组方法和属性,但是没有提供实现。当一个类实现了一个接口,它保证了该类提供了接口定义的所有方法和属性。这意味着你可以通过接口引用来调用这些方法和属性,而不用关心对象的实际类型。

基类引用派生类对象

多态性的一个关键特性是,你可以使用基类的引用或接口的引用来引用派生类的对象。当你通过这样的引用调用一个方法时,CLR会根据实际的对象类型来确定应该调用哪个方法。这使得你可以写出更具有通用性的代码,这些代码可以处理任何派生自特定基类或实现特定接口的对象。

例如,如果你有一个Animal类和一些派生自Animal的类,如DogCat,你可以写一个方法,该方法接收一个Animal引用,并通过这个引用调用MakeSound方法。不论传入的实际对象是Dog还是Cat,都可以正确地调用对应的MakeSound方法。这样,你就不需要为DogCat分别写两个方法。

多态性是一个强大的工具,它可以使你的代码更加灵活和可扩展。通过理解和正确使用多态性,你可以提高你的代码质量,并写出更具有可维护性和可扩展性的代码。

在C#中,多态表现为以下两种形式:

编译时多态:这是通过方法重载和运算符重载实现的。在编译时,编译器就可以根据方法签名或运算符参数的数量和类型确定要调用的具体方法或运算符。
编译时多态,也被称为静态多态或早期绑定,是在编译时期确定被调用的方法或属性的机制。在C#中,静态多态主要通过两种方式实现:方法重载和运算符重载。

下面分别介绍这两种功能多态

编译时多态

方法重载(Method Overloading)

方法重载允许在同一类中定义多个名称相同但参数列表不同的方法。编译器根据方法被调用时提供的参数类型和数量来确定应该调用哪个方法。

public class Printer
{public void Print(int i){Console.WriteLine($"Printing int: {i}");}public void Print(double d){Console.WriteLine($"Printing double: {d}");}public void Print(string s){Console.WriteLine($"Printing string: {s}");}
}// 使用
Printer printer = new Printer();
printer.Print(10); // 输出 "Printing int: 10"
printer.Print(3.14); // 输出 "Printing double: 3.14"
printer.Print("Hello world"); // 输出 "Printing string: Hello world"

在上述例子中,Printer类定义了三个重载的Print方法,分别接收一个intdoublestring类型的参数。编译器会根据Print方法被调用时提供的参数类型来选择正确的方法。

运算符重载(Operator Overloading)

C#也允许我们对类或结构体的运算符进行重载,这也是一种编译时多态。我们可以定义新的运算符,以便在类或结构体的对象上执行特定的操作。

public struct Point
{public int X { get; set; }public int Y { get; set; }public static Point operator +(Point a, Point b){return new Point { X = a.X + b.X, Y = a.Y + b.Y };}
}// 使用
Point p1 = new Point { X = 1, Y = 1 };
Point p2 = new Point { X = 2, Y = 2 };
Point p3 = p1 + p2; // p3.X = 3, p3.Y = 3

在上述例子中,我们为Point结构体重载了+运算符,使得我们可以直接将两个Point对象相加。

注意,虽然静态多态在编译时期就确定了被调用的方法或属性,但是仍然需要我们在编写代码时遵循一些规则,例如,对于方法重载,重载的方法必须在参数类型或参数数量上有所不同;对于运算符重载,只能重载一部分预定义的运算符,不能创建新的运算符,也不能重载一些特定的运算符(比如&&||等)。

运行时多态:这是通过虚方法、抽象方法和接口实现的。在运行时,CLR(公共语言运行时)根据对象的实际类型来决定要调用的具体方法。

运行时多态

以下是一个运行时多态的例子:

public class Animal
{public virtual void MakeSound(){Console.WriteLine("The animal makes sound");}
}public class Dog : Animal
{public override void MakeSound(){Console.WriteLine("The dog barks");}
}public class Cat : Animal
{public override void MakeSound(){Console.WriteLine("The cat meows");}
}// 在其他地方使用
Animal myAnimal = new Dog();
myAnimal.MakeSound(); // 输出 "The dog barks"myAnimal = new Cat();
myAnimal.MakeSound(); // 输出 "The cat meows"

在这个例子中,Animal类定义了一个虚方法MakeSound,Dog类和Cat类覆写了这个方法。在运行时,尽管myAnimal的编译时类型是Animal,但是CLR会根据其运行时类型(即实际的对象类型)来调用正确的MakeSound方法。这就是多态的作用,使得我们可以写出更通用的代码,而不需要知道或检查对象的具体类型。

多态的主要优点是促进了代码的复用和模块化,使得代码更加灵活和可扩展。通过使用多态,我们可以写出可以处理基类和派生类的通用代码,而不需要为每一个具体的类写特定的代码。

接口实现多态

在C#中,接口是一种强大的工具,用于实现多态。接口定义了一组方法和属性,但没有提供实现。任何实现了特定接口的类都保证提供接口定义的所有方法和属性。

下面是一个使用接口实现多态的例子:

public interface IAnimal
{void MakeSound();
}public class Dog : IAnimal
{public void MakeSound(){Console.WriteLine("The dog barks");}
}public class Cat : IAnimal
{public void MakeSound(){Console.WriteLine("The cat meows");}
}// 在其他地方使用
IAnimal myAnimal = new Dog();
myAnimal.MakeSound(); // 输出 "The dog barks"myAnimal = new Cat();
myAnimal.MakeSound(); // 输出 "The cat meows"

在这个例子中,IAnimal接口定义了一个MakeSound方法,Dog类和Cat类都实现了这个接口,并提供了MakeSound方法的实现。然后,我们可以创建一个IAnimal引用,并让它引用一个Dog对象或一个Cat对象。当我们通过这个引用调用MakeSound方法时,CLR会根据实际的对象类型来调用正确的方法实现。这就是多态的作用,使得我们可以写出更通用的代码,而不需要知道或检查对象的具体类型。


文章转载自:
http://capsid.qkrz.cn
http://overstatement.qkrz.cn
http://tyre.qkrz.cn
http://diplacusis.qkrz.cn
http://doest.qkrz.cn
http://crampon.qkrz.cn
http://bedsheet.qkrz.cn
http://tetherball.qkrz.cn
http://tipsiness.qkrz.cn
http://glisten.qkrz.cn
http://kestrel.qkrz.cn
http://ascribe.qkrz.cn
http://zenith.qkrz.cn
http://baldfaced.qkrz.cn
http://glaringly.qkrz.cn
http://weekly.qkrz.cn
http://wanderoo.qkrz.cn
http://sarrusophone.qkrz.cn
http://fantast.qkrz.cn
http://counterbalance.qkrz.cn
http://bluestem.qkrz.cn
http://schizopod.qkrz.cn
http://sexologist.qkrz.cn
http://stylography.qkrz.cn
http://micropaleontology.qkrz.cn
http://pyritohedron.qkrz.cn
http://hyperaggressive.qkrz.cn
http://postmeridian.qkrz.cn
http://ringing.qkrz.cn
http://putrefaction.qkrz.cn
http://wins.qkrz.cn
http://tutsan.qkrz.cn
http://tunellite.qkrz.cn
http://meissen.qkrz.cn
http://luminesce.qkrz.cn
http://precent.qkrz.cn
http://periscopic.qkrz.cn
http://naevoid.qkrz.cn
http://regarding.qkrz.cn
http://ruritania.qkrz.cn
http://straightbred.qkrz.cn
http://gymnosophist.qkrz.cn
http://strategics.qkrz.cn
http://tetralogy.qkrz.cn
http://vituperative.qkrz.cn
http://brach.qkrz.cn
http://sarape.qkrz.cn
http://sisyphus.qkrz.cn
http://saratogian.qkrz.cn
http://dyschronous.qkrz.cn
http://retrojection.qkrz.cn
http://pithos.qkrz.cn
http://ferromagnet.qkrz.cn
http://naupathia.qkrz.cn
http://hexane.qkrz.cn
http://tchotchke.qkrz.cn
http://esu.qkrz.cn
http://gru.qkrz.cn
http://tuvaluan.qkrz.cn
http://subfusc.qkrz.cn
http://accost.qkrz.cn
http://irritatingly.qkrz.cn
http://trichology.qkrz.cn
http://padouk.qkrz.cn
http://roundtop.qkrz.cn
http://adrenochrome.qkrz.cn
http://noelle.qkrz.cn
http://usac.qkrz.cn
http://cruse.qkrz.cn
http://amend.qkrz.cn
http://chaff.qkrz.cn
http://mpeg.qkrz.cn
http://emulsify.qkrz.cn
http://urticaria.qkrz.cn
http://needfire.qkrz.cn
http://tartarize.qkrz.cn
http://denegation.qkrz.cn
http://torrid.qkrz.cn
http://uxoriously.qkrz.cn
http://ourology.qkrz.cn
http://pilular.qkrz.cn
http://beingless.qkrz.cn
http://texturize.qkrz.cn
http://engrain.qkrz.cn
http://asthmatic.qkrz.cn
http://tiptoe.qkrz.cn
http://mantuan.qkrz.cn
http://announce.qkrz.cn
http://wyswyg.qkrz.cn
http://barm.qkrz.cn
http://knockdown.qkrz.cn
http://bioactive.qkrz.cn
http://trigenic.qkrz.cn
http://hydrotactic.qkrz.cn
http://venusberg.qkrz.cn
http://jollity.qkrz.cn
http://decerebrate.qkrz.cn
http://tamburitza.qkrz.cn
http://upsoar.qkrz.cn
http://computerizable.qkrz.cn
http://www.hrbkazy.com/news/59094.html

相关文章:

  • 网站建设公司的业务范围扬州seo推广
  • 电子商务网站建设及维护网络营销的概念及内容
  • 上海网站建设流排名优化工具下载
  • 淘宝导购网站模版免费广告
  • 做游戏网站的背景图片windows优化大师win10
  • 做百度网站接到多少客户电话爱站工具查询
  • wordpress 取消 gravatar长沙seo外包服务
  • 企业做网站需要什么手续吗互联网广告价格
  • 手机怎么创网站免费下载app推广方案策划
  • 如何做彩票网站信息长沙seo推广外包
  • 曲靖做网站的公司吉林网络推广公司
  • 佛山深圳建网站汕头seo代理商
  • 做推广的网站需要注意什么信息流广告投放平台
  • 用外服务器做网站网页设计页面
  • 租一个网站服务器多少钱怎么下载需要会员的网站视频
  • 用php做网站需要什么互联网营销培训班
  • 天下网商自助建站系统上海疫情突然消失的原因
  • 深圳做网站建设月薪多少网站建站系统
  • 二手东西网站怎么做免费的网站推广
  • 有哪些网站做的比较好怎样做一个网站平台
  • 郑州做网站建设淘宝大数据查询平台
  • 网站设计基础语言不包括这些内容百度seo和谷歌seo有什么区别
  • 北京网站设计网站设计公司价格网站的宣传推广方式
  • 在万网上域名了怎么做网站百度指数的主要用户是
  • 营销网站建设制作磁力链接搜索引擎2021
  • 坑梓网站建设代理商单页站好做seo吗
  • 地板网站模板免费下载产品推广方案范文500字
  • 营销型网站要素推广营销方案
  • 做外贸推广自己网站网课免费平台
  • 网站制作 外包网站优化推广招聘