封装和继承

来源:互联网 发布:color run 知乎 编辑:程序博客网 时间:2024/06/06 05:47
一、封装
1、定义: 每个对象都包含它进行操作所需要的所有信息,这个特性称为封装。因此对象不必以来其他对象来完成自己的操作。这样方法和类包装在类中,通过类的实例来实现。
2、作用和好处:  
         (一)封装把对象的所有组成部分组合在一起,有三个作用:
               (1)隐藏类的实现细节:使用方法将类的数据隐藏起来。
               (2)迫使用户去使用一个界面去访问数据:定义程序如何引用对象的数据,控制用户对类的修改和访问数据的程度。 
               (3)使代码更好维护:类的内部实现改变,对外接口可以不变。
          (二)封装有一些好处:
               (1)良好的封装能够减少耦合;
               (2)类内部实现就可以自由地修改;
               (3)类具有清晰的接口;
3、get/set方法实现封装格式
           public class Department

                {

                        private string departname;

                  // 读方法

               public string GetDepartname()

                   {

                       return departname;

                   }

                  //写方法

                  public void SetDepartname( string departname)

                 {

                      this.departname=departname;

          }

 }

4、用属性实现封装
        public class Department

             {

                      private string departname;

                      public string Departname

     {

          get

         {

               return departname;

          }

          set

             {

              departname=value;

             }

             }

                   {

                      Department d= new Department();

                      d.Departname="Communication";

                      Console.WriteLine("The Department is :{0}",d.Departname);

                      Console.ReadKey();

                    }

        }

二、继承
1、定义:继承就是从父类中获取一些公开的成员,如方法和属性。C#中只允许继承一个父类,但允许继承多个接口。如果子类继承接口,则必须实现接口中定义的所有公开成员。
         公开成员是指在父类中定义为public的成员(public的作用域可在子类中生效,而private作用域则不可)
子类继承父类:
子类拥有父类非Private的属性和功能;
子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;
子类还可以以自己的方式实现父类的功能(方法重写)
2、优点:继承使得所有子类公共部分都放在父类中,使得代码得到共享,这就避免了重复。此外,继承可使得修改或扩展继承而来的实现都较为容易。
3、继承实例
   namespace 继承
{
     class Student
    {
        private string name;
        private int  weight;
        public string Name
        {
            set
            { name = value; }
            get
            { return name; }
        }
        public int Weight
        {
            set
            { weight = value; }
            get
            { return weight; }
        }
    }
    class StudentWrite
    {
        public static void Main(string[] args)
        {
            Student s = new Student();
            s.Name = "小刚";
            int a=s.Weight = 60;
            Console.WriteLine("{0}的体重{1}公斤", s.Name, s.Weight);
            s.Name = "李燕";
            int b=s.Weight = 45;
            Console.WriteLine("{0}的体重{1}公斤", s.Name, s.Weight);
            if(a>b){
            Console.WriteLine("小刚比李燕重");
            }
            Console.ReadKey();

        }
    }
}
0 0
原创粉丝点击