请选择 进入手机版 | 继续访问电脑版

我爱科技论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 346|回复: 0

[免费教程] 【C#进阶】多态实现的主要条件及动物类的实现代码

[复制链接]

696

主题

743

帖子

7934

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7934

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2018-1-24 19:09:23 | 显示全部楼层 |阅读模式
主要知识点:
1.  多态实现的条件:
父类引用指向子类对象
子类继承父类
   子类对父类的方法进行重写
2.  抽象类的主要特点
抽象成员只能出现在抽象类中
子类继承父类之后必须对父类中的抽象方法予以实现
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace ConsoleApp1
  6. {
  7.     //动物类的继承实现
  8.     class Class1
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             //开始实现多态:父类引用指向子类对象
  13.             //Animal animal = new Cat();

  14.             Animal[] a = {new Cat(), new Dog(), new Pig() };
  15.             foreach(Animal animal in a)
  16.             {
  17.                 //动物叫这个方法现在已经实现了多态
  18.                 animal.Bark();
  19.                 animal.Drink();
  20.                 animal.Eat();
  21.             }
  22.         }
  23.     }

  24.     //抽象成员只能出现在抽象类中
  25.     abstract class Animal
  26.     {
  27.         //抽象方法
  28.         public abstract void Bark();  //父类没有办法去确定子类如何实现


  29.         //这里提供的是一个普通的函数
  30.         public  void Eat()
  31.         {
  32.             Console.WriteLine("Animal eat");
  33.         }

  34.         public  void Drink()
  35.         {
  36.             Console.WriteLine("Animal drink");
  37.         }
  38.     }

复制代码
   //子类继承之后,会把父类的普通函数继承过来; 对于继承过来的抽象函数子类必须要予以实现

    //一个子类继承了一个抽象的类, 那么这个子类就必须重写这个抽象父类中的所有抽象成员(重写)
  1. class Cat : Animal
  2.     {
  3.         //函数的重写
  4.         public override void Bark()
  5.         {
  6.             Console.WriteLine("cat bark");
  7.         }
  8.     }

  9.     class Dog : Animal
  10.     {
  11.         public override void Bark()
  12.         {
  13.             Console.WriteLine("dog bark");
  14.         }
  15.     }

  16.     class Pig : Animal
  17.     {
  18.         public override void Bark()
  19.         {
  20.             Console.WriteLine("pig bark");
  21.         }
  22.     }


  23. }
复制代码






上一篇:编程开发英汉词典的必备字典库文件资料
下一篇:带你使用Everything软件在几秒钟内快速定位找到你需要的任意本地文件
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案; 如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

微信扫一扫

快速回复 返回顶部 返回列表