C# 之面向对象基础总结

来源:互联网 发布:手机工作计划软件 编辑:程序博客网 时间:2024/05/16 06:05

      学完C#视频后,对面向对象这个概念有了更深的体会。

      那么什么是面向对象呢,什么样的程序是面向对象的设计呢,要明白这些首先要了解面向对象的三大特性:封装、继承、多肽。

 

 

      总结图:   

     

       

 

         一:封装

         是把客观事物封装成抽象的类

         如:Cat类 

        class Cat    //定义Cat类        {            private string name;        //声明Cat类的私有字符串变量, 是内部字段                       public Cat()                //构造方法            {                this.name = " ";            }            public Cat(string name)     //将构造方法重载            {                this.name = name;            }            public string Shout()       //Shout 猫叫方法            {               return "喵";            }         }



 

            猫的属性name和Shout()的方法,都在Cat这个类中。

         表面上看,Cat 类用 { }将它的属性和方法括在了一起,其实是对象进行封装。就好比我们常用的笔记本电脑,将很多零件封装在了内部,我们用电脑的时候,只需要按一下开关就可以拉,不用再管他们内部的操作。

         

         二:继承

        是类间的关系,被继承的类是基类,继承的类为派生类。

        在C#中继承的关键符号是 “:”,如Cat 类继承Animal 类

 

        class Cat : Animal  //Cat 类继承Animal 类        {            public Cat()                : base() //子构造方法需要调用父类同样的构造方法用base关键字            { }            public Cat(string name)                : base(name)            { }

        }


       

         使用继承将子类公共部分放到父类,不仅可以减少代码重复,而且修改方便。

 

         三:多肽

         多肽表示不同的对象有相同的动作,但是通过他们自己的实现代码执行

         多肽实现:1,将所要实现的方法定义成父类中的虚方法;2,子类使用override实现

         具体如下:

     class Animal    {        public virtual string Shout()  //定义了一个Shout的虚方法,可以子类被重写        {          return "";        }    }    class Cat : Animal                //Cat 类继承Animal    {        public override string Shout()//对父类中的虚方法重写,得到自己的Shout方法        {          return "喵";        }    }   class Dog : Animal   {       public override string Shout()       {        return "旺";       }   }



       

      总结:

      1,属性是封装对象的数据,方法是对象的行为,在代码中,属性后面不带括号,方法带括号。

      2,判断两个类间是不是继承关系,就判断满不满足“什么什么是什么”,如“狗是动物”。

      3,抽象类一定是用来继承的,且实例化没有意义。

      4,重载是两个或者多个构造函数,重写是实现父类中的虚方法(virtual /override)。

      5,在基类中定义的虚方法有方法体,实现的时候是重写,有选择的,而抽象方法没有方法体,必须别子类重写。