多态虚方法重写
Posted 疯丫头0805
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多态虚方法重写相关的知识,希望对你有一定的参考价值。
多态:
同样都是继承了同一个父类,但是父类中的方法并不使用任何一个子类,那么在这就需要子类重新编写这个方法的主体
1、需要父类同意子类可以重新编写自己的方法,virtual - 虚方法
2、子类只能重写父类允许重写的方法,只能重写虚方法,override - 重写覆盖虚方法
所有的类都可以当做父类,都可以有虚方法
Program 类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 多态_虚方法_重写 { class Program { static void Main(string[] args) { bird b = new bird(); plane p = new plane(); Console.WriteLine(b.flying()); Console.WriteLine(p.flying()); Class1 c = new Class1(); Console.WriteLine(c.flying()); Console.WriteLine(c.eat()); Console.ReadLine(); } } }
fly 类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 多态_虚方法_重写 { public class fly { //public string flying()//这样写的父类被子类继承后有可能不符合所有子类各自的特性,所以要改成虚拟的 //{ // return "我会飞行!"; //} public virtual string flying()//在public后面加上virtual就变成虚拟的,如果不符合个别子类的特性,可以再子类里面进行重写 { return "我会飞行!"; } public virtual string head() { return "我有头!"; } public virtual string wing() { return "我有翅膀!"; } } }
bird 类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 多态_虚方法_重写 { public class bird:fly { public override string flying()//override是重写覆盖,打出来后自动提示需要更改的内容,回车自动显示,然后把ruturn的内容改成其他内容即可 { return "我拍拍翅膀就能飞!"; } public virtual string eat()//自己独有的特性也可以被写成虚方法,它派生的类继承后也可以进行重写 { return "我吃小米!"; } } }
plan 类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 多态_虚方法_重写 { class plane:fly { public override string flying() { return "我喷火就能飞!"; } } }
class1 类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 多态_虚方法_重写 { public class Class1 : bird//Class1继承bird这个子类为父类,那么Class1也可以在里面继续重写,最顶端的虚方法可以被下面的派生类无限重写 { public override string flying() { return "我不拍翅膀也能飞!"; } public override string eat() { return "我吃小米,也吃沙子!"; } } }
以上是关于多态虚方法重写的主要内容,如果未能解决你的问题,请参考以下文章