• 面向对象 多态


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

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

    虚方法: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(); } } }

     

  • 相关阅读:
    [转]怎么看工作是否到位
    [转]一个合格程序员该做的事情——你做好了吗?
    深入图解虚拟机(一)--一个问题引出的思考
    正则表达式边用边学(一)——分组、捕获
    redhat无法注册RHN的解决办法
    使用jquery扩展表格行合并方法探究
    扩展jquery easyui datagrid编辑单元格
    js点滴知识(1) -- 获取DOM对象和编码
    使用雅虎YUI Compressor压缩JS过程心得记录
    插曲一--记《数据结构与问题求解(Java语言版)(第4版)》翻译问题
  • 原文地址:https://www.cnblogs.com/zyg316/p/5598352.html
Copyright © 2020-2023  润新知