美文网首页
2019-01-15

2019-01-15

作者: yqc5521 | 来源:发表于2019-01-15 15:06 被阅读0次

一、.NET基础概念《面向对象-继承》

继承:LSP里氏替换原则(通过代码说明下,声明父类类型变量,指向子类类型对象,以及调用方法时的一些问题)

继承注意点:
(1).子类执行构造函数之前,会默认执行父类的无参构造函数,因此如果父类执行有参构造函数时,必须实现自己的无参构造函数,否则,会报错。
//解决办法1,在父类实现无参构造函数

public  class Person 
{
   public string Name {get;set;}
   public int Age {get;set;}
   public Person(string name, int age)
   {
      this.Name = name;
      this.Age = age;
   }

   public Person()
   { 
   }
}

class Student:Person
{
   public int Sid {get;set;} 
   public Person(string name, int age, int sid)
   {
      this.Name = name;
      this.Age = age;
      this.Sid = sid;
   }
}

//解决办法2,在子类实现构造函数时,同时继承实现父类有参构造函数

public  class Person 
{
   public string Name {get;set;}
   public int Age {get;set;}
   public Person(string name, int age)
   {
      this.Name = name;
      this.Age = age;
   } 
}

public  class Student:Person
{
   public int Sid {get;set;} 
   public Person(string name, int age, int sid):base(name,age)  //在调用父类构造函数之前,现调用父类构造函数
   { 
      this.Sid = sid;
   }
}

(2)this在构造函数中的应用:可以封装多个不同参数的构造函数

public  class Person 
{
   public string Name {get;set;}
   public int Age {get;set;}

   public Person(string name):this(name,0)
   { 
   } 

   public Person(string name, int age)
   {
      this.Name = name;
      this.Age = age;
   } 
}
 

相关文章

网友评论

      本文标题:2019-01-15

      本文链接:https://www.haomeiwen.com/subject/oqdydqtx.html