博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象 多态
阅读量:5262 次
发布时间:2019-06-14

本文共 2109 字,大约阅读时间需要 7 分钟。

多态:

有了继承,才有了多态;
概念:继承同一个父类的全部子类,使用起来都不一样,他们都是一个独立的个体;

普通父类中,可以出现虚方法,虚方法可以在子类中被重写;

虚方法:virtual  ,跟在访问修饰符后面使用

重写:override,跟在访问修饰符后面使用

父类,基类

子类,派生类,超类
注:子类还可以添加子类继承这个子类,比如子类A继承了父类B,还可以再添加一个子类c来继承A,

这样C就继承了子类A中的所有

 

创建一个项目,并添加三个类,一个父类,两个子类

父类:

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 面向对象__多态{    class ren    {        public virtual void rr() //在ren这个类中添加使用方法,添加了虚方法,在子类继承后可以被重写        {            Console.WriteLine("我爱吃肉、蔬菜和水果");        }        //普通父类中,可以出现虚方法,虚方法可以在子类中被重写;       //虚方法:virtual,在上面访问修饰符后面添加这个方法       //重写:override     }}

 

子类1:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 面向对象__多态{    class nan:ren //nan继承了ren这个类,    //在父类中有可以被重写的虚方法,在子类中可以进行重写,在访问修饰符后面加override    {        public override void rr()//作为一个子类,他和其他子类一样继承父类,他也同样有自己的使用方法                                 //每一个子类都是一个独立的个体        {            Console.WriteLine("我是男人,我爱吃肉");        }
//子类中也可以有单独自己的方法 public void sport()        {
Console.WriteLine("我是男人,我喜欢运动"); }
}}

 

子类2:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 面向对象__多态{    class nv:ren //nv继承了ren这个类    {        //在父类中有可以被重写的虚方法,在子类中可以进行重写,在访问修饰符后面加override        public override void rr()//作为一个子类,他和其他子类一样继承父类,他也同样有自己的使用方法        //每一个子类都是一个独立的个体        {            Console.WriteLine("我是女人,我爱吃蔬菜和水果");        }
//子类中也可以有单独自己的方法 public void shop()        {
Console.WriteLine("我是女人,我喜欢购物"); }
} }

Program:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 面向对象__多态{    class Program    {        static void Main(string[] args)        {            nan n = new nan();//实例化一下            n.rr();//nan这个类继承了ren这个类,就可以使用里面的信息            //父类中添加了虚方法,表示在子类中可以被重写,现在每个子类中重写了属于自己的属性,            //在program中调用子类时就会出现每个自己的属性    n.sport();//属于这个子类中自己的属性             nv v = new nv();            v.rr();//nv这个类同样是ren的子类,也可以使用父类里面的            v.shop();//属于这个子类中自己的属性        Console.ReadLine();        }    }}

 

转载于:https://www.cnblogs.com/zyg316/p/5598352.html

你可能感兴趣的文章
linux sed命令
查看>>
html标签的嵌套规则
查看>>
[Source] Machine Learning Gathering/Surveys
查看>>
HTML <select> 标签
查看>>
类加载机制
查看>>
tju 1782. The jackpot
查看>>
湖南多校对抗赛(2015.03.28) H SG Value
查看>>
hdu1255扫描线计算覆盖两次面积
查看>>
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
bzoj3224 splay板子
查看>>
程序存储问题
查看>>
Mac版OBS设置详解
查看>>
优雅地书写回调——Promise
查看>>
android主流开源库
查看>>
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
Ubuntu下面安装eclipse for c++
查看>>