6.19 多态

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace _6._19_多态
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             /*多态,有了继承才有多态
14             继承同一个父类的所有子类,使用起来都不一样*/
15             Console.WriteLine("男人");
16             men m = new men();
17             m.chifan();
18             m.xihuanchi();
19             m.zuqiu();
20
21
22             Console.WriteLine("女人");
23             women w = new women();
24             w.chifan();
25             w.xihuanchi();
26             w.guangjie();
27
28             Console.WriteLine("小男孩");
29             xiaomen x = new xiaomen();
30             x.naifen();
31             x.xihuanchi();//执行men 里面的语句,而不是ren 里面的语句
32             x.chifan();
33
34             Console.ReadLine();
35
36
37         }
38     }
39 }

第一父集   REN

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _6._19_2_抽象类
{
    public abstract  class ren
    {
        public abstract void chifan();
        public abstract void hejiu();
        public void huxi()
    {
        Console.WriteLine("人需要呼吸");
    }
        public virtual void heshui()
        {
            Console.WriteLine("人需要喝水");
        }
        public  void yule()
    {
        Console.WriteLine("父集人需要娱乐");
    }
        public abstract void pengyou()
        {
            Console.WriteLine("喜欢交朋友");
        }

    }
}

第二层 子集 nanren

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _6._19_2_抽象类
{
    class nanren : ren //子集不需要注明,类型是抽象类
    {
        public override void chifan()
        {
            Console.WriteLine("喜欢吃肉");
        }
        public override void hejiu()
        {
            Console.WriteLine("喜欢喝梦之蓝");
        }
        public override void pengyou()
        { 

        }

    }
}

Women

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _6._19_多态
{
    class women:ren
    {
        public override void xihuanchi()
        {
            Console.WriteLine("我是女人,喜欢吃菜");
         }
        public void guangjie()
        {
            Console.WriteLine("我爱逛街");
        }
    }
}

xiaoren

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _6._19_多态
{
    class xiaomen : men
    {
        public void naifen()
        {
            Console.WriteLine("喜欢吃奶粉");
        }
    }
}
时间: 2024-10-18 11:44:44

6.19 多态的相关文章

11_Java面向对象_第11天(接口、多态)

今日内容介绍1.接口2.多态 01接口的概念 * A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的 实现类(相当于接口的子类)来完成.这样将功能的定义与实现分离,优化了程序设计. 请记住:一切事物均有功能,即一切事物均有接口. 02接口的定义 A: 接口的定义 与定义类的class不同,接口定义时需要使用interface关键字. 定义接口所在的仍为.java文件,虽然声明时使用的为inter

类(面向对象、增删改查、继承、多态、封装、反射)

类的增删改查可以操作类里面的函数.数据属性,实例. 1.函数与类的区别 函数实现功能的模块化 类是实现功能和数据的模块化 ——init——类的构造:初始化类,实例化的时候自动执行2.类用法 4.什么是类, 类是把一类事物的相同的特征和同一动作整合到一类,类是抽象的5.什么是对象 对象就是基于类创建的一种事物,也是特征和动作整合到一起的6.面向对象 就是__init__独特构造7.类和对象的关系 对象都是类产生的.8.实例化:有类产生的过程叫实例化9.新式类类名后面括号里加object10.什么是

【转】C/C++ 笔试、面试题目大汇总

1.求下面函数的返回值( 微软) int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999. 答案:8 思路:将x转化为2进制,看含有的1的个数. 2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同.申明一个引用的时候,切记要对其进行初始化.引用声明完毕后,相当于目标变量

java--面向对象(3)--黑马程序员

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 面向对象(3) 主要内容:< Math类的随机数.代码块.继承.this和super.方法重写的应用.方法重写.final关键字.多态 > 1 学习Math类的随机数功能 通过帮助文档: 1.Math类是在:java.lang包下,不需要导包(关于包,后面会学习); 2.此类没有构造方法,所有的可用方法都是static:通过类名就可以调用: 3.要学习使用:random()方法: 形参:没有

cocos2d-Lua02Lua面向对象

1 Lua中的面向对象 1.1 问题 lua不是一个面向对象的语言.可是他又有面向对象的思想. lua中的面向对象是伪面向对象.伪面向对象就要用到table实现. 由table模拟了一个面向对象的编程, table事实上也能够看做是一个对象.和其它语言对象一样有个自身的标示(self),具有自己的生命周期.本案例演示lua中的面向对象. 1.2 方案 首先用table实现面向对象. 然后通过self得到当前lable对象. 接下来通过 : 符号实现声明函数时的隐试參数self. 最后通过requ

c/c++笔试面试试题

C 试题(纯属转载) 1.求下面函数的返回值(微软) int func(x) {     int countx = 0;     while(x)     {           countx ++;           x = x&(x-1);      }     return countx; } 假定x = 9999. 答案:8 思路:将x转化为2进制,看含有的1的个数. 2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操

嵌入式试题

1. 以下三条输出语句分别输出什么? char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc"; const char* str6 = "abc"; cout << boolalpha <

C/C++ 笔试、面试题目大汇总(转)

这些东西有点烦,有点无聊.如果要去C++面试就看看吧.几年前网上搜索的.刚才看到,就整理一下,里面有些被我改了,感觉之前说的不对或不完善. 转自fangyukuan,地址http://www.cnblogs.com/fangyukuan/archive/2010/09/18/1829871.html. 1.求下面函数的返回值( 微软) int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; 

C++/C 必知

2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同.申明一个引用的时候,切记要对其进行初始化.引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名.声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元.不能建立数组的引用.     3. 将“引用”作