.NET平台与程序设计【5】类的继承与多态
2023-04-18 15:49:50 时间
类的继承与多态
继承,子类与父类
继承是指 在子类中可以使用父类的一部分功能。
实现继承一般通过以下方式:
父类:class [父类名]{}
子类:class [子类名] : [父类名]
多态,使用虚拟函数实现重写(override)
子类使用父类重名的方法,但是想实现不同功能,我对多态的理解。
这个时候可以使用如下操作:
- 父类创建虚拟函数:
public virtual [数据类型][方法名]{}
- 子类使用重写(override):
public override [数据类型][方法名]{}
举个例子。其中Dog是父类,Poodle是子类。
class Dog
{
public string Name { get; set; }
public virtual void Bark()//通过使用virtual虚拟函数,可以实现重写
{
Console.WriteLine(Name + " : Woof!!");
}
}
class Poodle : Dog
{
public override void Bark()
{
Console.WriteLine(Name + " : Yip!Yip!");
}//同样是Bark函数,在Poodle这个子类中使用便会变成Yip!Yip!
}
完整代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sample05
{
class Dog
{
public string Name { get; set; }
public virtual void Bark()//通过使用virtual虚拟函数,可以实现重写
{
Console.WriteLine(Name + " : Woof!!");
}
}
class Poodle : Dog
{
public override void Bark()
{
Console.WriteLine(Name + " : Yip!Yip!");
}//同样是Bark函数,在Poodle这个子类中使用便会变成Yip!Yip!
}
internal class Program
{
static void Main(string[] args)
{
Dog mydog = new Dog() { Name = "Doggy" };//这样在new的同时改变属性
mydog.Bark();
////可以在Dog对象中存储Poodle对象
Dog myPoodle = new Poodle() { Name = "Puppy" };
myPoodle.Bark();
Console.ReadLine();
}
}
}
运行结果:
相关文章
- 《Ajax科普入门》用Ajax写个经典影视台词网易云评论无限滚动
- 十年开发老司机,感悟DDD领域驱动设计的战略设计到底是什么?
- 读DDD有感
- 数字后端——布图规划
- 基于ASP.NET的销售系统源码
- 基于ASP.NET的在线投稿及稿件处理管理系统_WEB管理系统_SQLServer数据库应用
- Web API之鼠标事件
- 宣布推出 .NET 社区工具包 8.1!
- WPF 旋转太极
- WPF 引用第三方库的控件在设计器加上设计时数据和属性
- .Net 常用设置
- IO流知识盲点
- 谷歌I/O大会内容汇总 | 主打人工智能 今年最有料!
- 这届 I/O 不行?别闹,这并不是一场手机发布会
- I/O 首日,Google 发布了自家的 Siri、Skype、WhatsApp 和 Echo|极客早知道
- 2016谷歌I/O大会:人工智能成为产品DNA
- 谷歌I/O大会:人工智能为主角 瞄准VR标准
- ajax调用
- .Net 内存马改造
- WPF中使用资源