有关于 继承的实例

来源:互联网 发布:童年阴影知乎 编辑:程序博客网 时间:2024/04/29 22:54

//program.cs

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

namespace 继承实例9._4
{
    class Program
    {
        static void Main(string[] args)
        {
            Mammal mammal = new Mammal("MM");
            //mammal.name = "MM";
            mammal.Breath();
            mammal.SuckleYoung();

            Horse h = new Horse("小马");
          
            //h.name = "小马";
             h.Trot();
            h.Breath();
            h.SuckleYoung();
            h.Talk();

            Whale w = new Whale("小鲸");
          
            w.Swim();
            w.Breath();
            w.SuckleYoung();

            //类的赋值

            Mammal newMammal = new Horse("秘鲁");
            newMammal.SuckleYoung();
            newMammal.Breath();
            string name = newMammal.getName();
            Console.WriteLine("newMammal的名字为:"+name);
           //子类引用不能直接赋值父类对象,除非将父类对象进行强制转换
            //编译ok,运行异常
            try
            {
                Horse littleHorse = (Horse)new Mammal("nedy");
                littleHorse.Breath();
                littleHorse.SuckleYoung();
                littleHorse.Trot();
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }


            Console.ReadKey();
        }
    }
}

//Mammal.cs

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

namespace 继承实例9._4
{
    class Mammal
    {
        public string name;

        public Mammal(string mammalName)
        {
            name = mammalName;
        }

        public void Talk()
        {
            Console.WriteLine("mammal talking");
        }

        public string getName()
        {
            return name;
        }
        public void Breath()
        {
            Console.WriteLine(name+"is breathing...");
        }
        public void SuckleYoung()
        {
            Console.WriteLine(name+"is suckleyounging");
        }

    }
}
//Horse.cs

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

namespace 继承实例9._4
{
    class Horse:Mammal
    {
        public Horse(string name):base(name)
        {
       
        }
        new public void Talk()
        {
            Console.WriteLine("horse is talking");
        }
        public void Trot()
        {
            Console.WriteLine(getName()+"is troting");
          
        }
    }
}

 


 

原创粉丝点击