zoukankan      html  css  js  c++  java
  • 面向对象——多态

    多态:

    龙生九子,各有不同

    有了继承,才有了多态

    1、虚方法 virtual
    重写 override

    父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写

    子类重写父类的方法使用的是override关键字

    父类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 多态
    {
        public class Fly
        {
            public virtual string Fling()
            {
                return "拍拍翅膀就能飞!!!";
            }
        }
    }

    子类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 多态
    {
        public class Plane:Fly
        {
            public override string Fling()
            {
                return "喷火就能飞!!!";
            }
        }
    }

    2、抽象类
    是因为普通的多态虚方法没有人用本身的方法主体,那么...

    抽象类就是来当亲爹,abstract
    抽象类中可以有抽象方法:abstract
    抽象方法一定在抽象类中,但是抽象类中不一定只有抽象方法,也可以有普通方法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 抽象类
    {
        public abstract class Fly
        {
            public abstract string Fling();
    
            public string Eat()
            {
                return "吃小米";
            }
    
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 抽象类
    {
        public class Bird : Fly
        {
            public override string Fling()
            {
                return "拍拍翅膀就能飞!!";
            }
    
    
        }
    }

    3、接口

    假设人为一个对象

    吃饭,睡觉 - 基础类
    技能,地点 - 赚钱类
    娱乐1,娱乐2 - 娱乐类

    接口就是出来做 干爹的,接口不是类 interface
    编写方法格式: string 方法名();
    实现接口的方法 不要override,直接正常编写就可以了

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 接口
    {
        public abstract class JiChu
        {
            public abstract string ChiFan();
    
            public abstract string ShuiJiao();
    
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 接口
    {
        interface ZhuanQian
        {
            string JiNeng();
            string DiDian();
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 接口
    {
        interface YuLe
        {
            string YuLe1();
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 接口
    {
        class NanRen : JiChu, ZhuanQian, YuLe
        {
            public override string ChiFan()
            {
                return "大口吃饭";
            }
    
            public override string ShuiJiao()
            {
                return "大字型睡";
            }
    
            public string JiNeng()
            {
                return "敲代码";
            }
    
            public string DiDian()
            {
                return "白宫";
            }
    
            public string YuLe1()
            {
                return "LOL";
            }
    
    
        }
    }
  • 相关阅读:
    杭电2048--神、上帝以及老天爷
    杭电1012--u Calculate e
    杭电2049--不容易系列之(4)——考新郎
    杭电2045--不容易系列之(3)—— LELE的RPG难题
    Truncate Table user
    Sql server统计查询语句消耗时间
    C/C++:Unions 联合
    NYOJ 27 水池数目
    OpenRisc-39-ORPSoC,or1200的memory hierarchy整体分析
    RCP打包出来 运行 出现 JVM terminated.exit code = 13
  • 原文地址:https://www.cnblogs.com/jiuban2391/p/6106599.html
Copyright © 2011-2022 走看看