首页 > 其他 > 详细

C#中的继承

时间:2014-02-22 07:12:02      阅读:214      评论:0      收藏:0      [点我收藏+]

 

  曾记得从VB开始的时候就听说了“继承”,可是一直不知道在代码中是如何实现的,通过学习C#才了解到它的好处。

 

  基类和派生类

  估计通过字面的意思就能够大致了解到这两个区别,举个例子。

  教师和学生可以抽象出人这个类来,那么人就是所谓的基类,教师和学生就是人的派生类;当然学生又可以分为男和女的话,那么学生又成为了基类,男和女则成为了派生类。

 

  代码中的实现

  那么继承又是如何在代码中实现的呢?通过一个简单的例子来说明一下。

  

class Program
    {
        static void Main(string[] args)
        {
            student objstudent = new student();         //实例化学生类
            undergraduate objundergraduate = new undergraduate();   //实例化毕业生类
           
            objstudent .getinfo ();   //调用相应的函数来实现相应的功能
           // objstudent .displnfo ();
            objstudent.displnfo();
            objstudent.getmarks ();
          
            objundergraduate.chkegbl();
            
        }
    }


   public class person          //人这个类
   {
       private string name;
       private uint age;
      
       public void getinfo()            //得到公共的姓名和年龄
       {
           Console.WriteLine ("请输入您的姓名和年龄");
           name = Console.ReadLine();
           //age = uint.Parse(Console.ReadLine());
           age = uint.Parse(Console.ReadLine());

       }


       public void displnfo()              //显示相应的名字和年龄
       {
           Console.WriteLine("尊敬的{0},您的年龄为{1}", name, age);
       }
   }
       
    public  class student:person           //学生继承person这个类,关键是:
    {
        private string school;
        private uint eng;
        private uint math;
        private uint sci;
        private uint tol;

        public uint getmarks()            //得到分数
        {
            Console.WriteLine("请输入学校的名称");
            school = Console.ReadLine();
            Console.WriteLine("请分别输入英语、数学和自然科学的成绩");
            eng = uint.Parse(Console.ReadLine());
            math  = uint.Parse(Console.ReadLine());
            sci  = uint.Parse(Console.ReadLine());
            tol = eng + math + sci;
            Console.WriteLine("所得总分为:{0}", tol );
            return (tol);
        }
    }

    public class undergraduate:student             //二层继承,毕业生又继承学生这个类
    {
        public void chkegbl()                         //作为合格生的条件
        {
            Console.WriteLine("要上升一级,要求总分不低于150");
            //if(this.getmarks()>149)
            //if(this.getmarks ()>149)
            if(this.getmarks()>149)
            
                Console.WriteLine("合格");
            else 
                 Console.WriteLine ("不合格");
            
        }
    }


   通过上面这些代码,我们也看到继承其实也是相当的简单,只需要修改一些形式就可以继承父类。

   但是有的人就问了,如果我要修改基类里面的方法那么怎么办呢?很简单,只需要在定义基类的时候,加上关键字Virtual,并且在派生类中重新的时候添加override,下面再看一个例子。

 

C#中的继承

原文:http://blog.csdn.net/luckyzhoustar/article/details/19618619

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!