博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
49.C#--多态之抽象类
阅读量:7041 次
发布时间:2019-06-28

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

static void Main(string[] args)

{
//抽象类例子:狗狗会叫,猫咪也会叫
//实现多态,抽象类不能创建父类对象,所以只能指向子类
//调用狗狗会叫的方法,创建一个子类对象赋值给父类
Animal a = new Dog();
//a虽然表现出来的是父类对象,但父类被子类重写了,所以最终输出的子类的方法
//具体调哪个函数,取决于a装的是哪个子类的对象
a.Bark();
调用猫咪会叫的方法
//Animal a = new Cat();
//a.Bark();

Console.ReadKey();    }    //当父类中的函数不知道怎么实现的时候,可以将这个类写成抽象类,方法写成抽象方法    public abstract class Animal    {        //注意:抽象方法是不允许有方法体的        //写成抽象方法主要是不知道怎么实现叫这个函数        //抽象类存在意义是让子类重写,实现多态        public abstract void Bark();    }    //创建狗狗抽象类子类,并重写父类    public class Dog : Animal    {        public override void Bark()        {            Console.WriteLine("狗狗汪汪叫!");        }    }    //创建猫咪抽象类子类,并重写父类    public class Cat : Animal    {        public override void Bark()        {            Console.WriteLine("猫咪喵喵叫!");        }    }

转载于:https://blog.51cto.com/12679593/2396006

你可能感兴趣的文章
new 优先级的题目
查看>>
Linux--进程组、会话、守护进程(转)
查看>>
编写一个删除c语言程序文件中所有的注释语句
查看>>
解决android TextView多行文本(超过3行)使用ellipsize属性无效问题
查看>>
设置cookie倒计时让让表单自动提交
查看>>
泛型总结--待续
查看>>
数据与变量——编程的来源
查看>>
T-Sql操作Xml数据(转)
查看>>
js this指向
查看>>
Neo4j CQL - (11)- REMOVE删除
查看>>
多目标规划——fgoalattain
查看>>
Redis Exception: Exceeded timeout of 00:00:03
查看>>
Android Unlock Patterns
查看>>
Android Studio的使用(三)--包不分级、修改包名
查看>>
Python Selenium Chrome Headless 爬取企查查数据
查看>>
Sublime Text 2 常用快捷键
查看>>
hadoop day 1
查看>>
剑指offer——面试题26:判断二叉树B是否为二叉树A的子结构
查看>>
HDU2024 C语言合法标识符
查看>>
STS中applicationContext.xml配置文件
查看>>