C# 继承

来源:互联网 发布:腾讯手游助手mac 编辑:程序博客网 时间:2024/06/05 15:52
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace inherit{    class Program    {        static void Main(string[] args)        {            Chinese c = new Chinese();            c.SayHello();            c.Age = 20;            c.Hukou = "wuhan";            c.KongFu();            American a = new American();            a.SayHello();            a.Age = 30;            a.Culture = "obesity";            a.food();            //父类引用指向子类对象            Person p1 = c;//Person类型 指向一个Chinese类型的对象是可以的!           //p1.food();  p1不能调用子类Chinese的函数            p1.SayHello(); //p1只能调用父类Person的函数            Person p2 = a;            Person p3 = new American();            p3.SayHello();            //需要一个中国人,给我一个Person类型变量,报错!!!            //Chinese cc = new Person();           //需要一个中国人,对Person类型变量进行强制类型转换,程序员保证            Chinese cc = (Chinese)p1;            //需要一个中国人,程序员却把指向美国人的Person类型变量强制变化成中国人类型,报错!!!            //Chinese ccc = (Chinese)p2;                          Console.ReadKey();        }    }    class Person    {        public int Age { get; set; }        public string Name { get; set; }        public void SayHello()        {            Console.WriteLine("HelloWorld!~");        }       }    class Chinese : Person  //继承    {        public string Hukou{get;set;}        public void KongFu()        {            Console.WriteLine("降龙十八掌");        }    }    class American : Person    {        public string Culture { get; set; }        public void food()        {            Console.WriteLine("hamburger");        }    }}

0 0