首页 > 代码库 > 多态、虚方法、重写
多态、虚方法、重写
多态:
同样都是继承了同一个父类,但是父类中的方法并不使用任何一个子类,那么在这就需要子类重新编写这个方法的主体
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 "我吃小米,也吃沙子!"; } }}
多态、虚方法、重写
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。