面向对象(基础oop)之进入继承

          你们好,我叫李京阳,,很高兴认识你们,之因此我想开一个本身的博客,就是来把本身所了解的知识点经过本身的话写一下,但愿被博客园的朋友们点评和一块儿讨论一下,也但愿从博客园中多认识一些软件开发人员!如今我开始讲一下面向对象的一点知识,请大家多多点评和讨论!!工具


           1. 继承的目的虽然是让子类去拥有父类的成员,可是继承必定不要乱继承
             不要仅仅是为了去获得某1个类的成员而去继承.
            
             知足继承的关系: 当知足is a 的关系的时候,就能够继承.
             当子类是1个父类的时候 那么就能够继承.
             Student Personthis

  class Student : Person
    {
     }

             麻雀    鸟
             汽车    交通工具
             电风扇  电器
           
          2. 只要有1个成员 不是全部的子类 都拥有的, 那么这个成员就不该该定义父类中.

          3. this关键字表明当前对象, 经过this关键字能够访问当前对象的成员
             当前对象的成员:  本身自己的员+从父类继承过来的全部的成员.
           spa

 1     class Student : Person
 2     {
 3         public string StuNo { get; set; }
 4       
 5 
 6         public void Test()
 7         { 
 8             this.Name = "jack";
 9         }
10     }


             this关键字能够访问 本类的全部成员和父类的非私有成员.  父类的私有成员确实存在,可是就是访问不到.
             this关键字仍然表明的是对象,经过它能够点出对象中的 除了父类的私有成员 之外的全部成员.
             this关键字只能用在实例方法中.    code

 

             base关键字.显示的访问父类的非私有成员 。 能够访问子类对象中的 父类的 非私有成员.
             特别强调的是: base不表明父类对象 由于压根就没有父类对象. 经过它能够访问父类的非私有成员.
            
             经过this关键字访问当前对象的成员的时候: 先找子类自己有没有这个成员,若是没有再找是否有从父类继承过来的.
             base关键字 直接就找父类中的成员.对象

 1     class Student : Person
 2     {
 3         public string StuNo { get; set; }
 4 
 5 
 6         public Student(string name, int age, bool gender, string stuNo) 
 7             :base(name,age,gender)
 8         { 
 9             this.StuNo = stuNo;
10         }
11      }


             咱们发现,base能够点出来的成员 经过this均可以点出来访问.
             建议: 若是咱们访问的确实是从父类继承过来的成员 那么建议用base关键字来访问. a.方便代码的阅读.b.提升效率
                   只有在访问的成员确实是子类独有的,那么咱们才用this关键字.blog

           
          
          4. 继承的特色
             a. 单根性:  1个类只能有1个父类. 1我的只能有1个亲爹, 可是能够有多个干爹.
                        可是1个类能够实现多个接口.
                       
             b. object类是全部类的祖宗类.C#中的类都直接的或者间接的从Object类继承.
                若是咱们写1个类 不为这个类指定父类 那么这个类默认就从object类继承.
                因此咱们才能够在这个类中看到object类的成员.
               
             c. 传递性:
                A类从B类继承, B类从C类继承 那么A类就拥有了B和C的全部成员.
               
         
          5.  protected修饰的成员只能直接在本类和本类的子类中访问.            继承

1         protected double Height { get; set; } 
2 
3 
4         public void SayHi()
5         { 
6             Console.WriteLine("身高:" +Height);
7         }

              在子类中只能直接访问当前子类对象从父类继承过来的ptotected
              可是不能经过父类对象点出protected来访问.
              经过子类对象 在子类的内部 是能够点出protected的.        
              在父类的内部是不管是直接访问仍是建立父类对象都是能够访问protected接口

相关文章
相关标签/搜索