---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
继承:
为了解决代码冗余的问题,我们在面向对象中引入了继承这个概念,把几个类中重复出现的成员,单独的拿出来封装到一个类中,将这个类作为其它几个类的父类。
那么其它的几个类就都能够访问到父类中的成员。
比如说让Student这个类继承于Person这个类。
把Student这个类称之为子类或者派生类。
把Person这个类称之为父类或者基类。
在前面的笔记中我说了,一个类中有字段,属性,方法,和构造函数。那么当一个子类将继承父类的时候,都可以把那些继承过来呢?
下面是以个题目,通过这个题目来一一解释子类到底字父类中继承了什么。
定义一个父类Person. 写一个Reporter类, Reporter 打招呼的方法是说"大家好,我叫XX,,我的爱好是XXX。其中姓名要继承自Person中的属性
首先定义一个Person类,里面有三个属性,和三个个字段,一个自定义的构造函数
namespace 继承
{
class Person
{
string _name; //姓名
public string Name
{
get { return _name; }
set { _name = value; }
}
int _age; //年龄
public int Age
{
get { return _age; }
set { _age = value; }
}
char _gender; //性别
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
public Person(string name,int age,char gender) //构造函数
{
this.Name = name;
this.Age = age;
this.Gender = gender;
}
}
}
下面是定义的Reporter类:
class Reporter:Person //Reporter继承Person类,
{
string _interest; //兴趣
public string Interest
{
get { return _interest; }
set { _interest = value; }
}
public void Introduce() //打招呼的一个方法
{
Console.WriteLine("大家好,我叫{0},我的爱好是{1}",this.Name,this.Interest);
}
public Reporter(string name, string interest)
: base(name, 0, '\0') //需要用到base关键字,来调用父类中的构造函数
{
this.Name = name;
this.Interest = interest;
}
}
Reporter子类到底都继承了Person这个父类的那些呢?
1:子类没有继承私有字段。
2.子类继承了属性
3.通过base关键字,在子类中显示的调用父类的构造函数。但是子类并不是继承的父类的构造函数,但是子类会默认的去调用父类那个默认的无参数的构造函数,但是当你在父类中有了一个构造函数的时候,
原来那个默认的无参数的就没了了,此时,子类已经调不到你父类,需要你用base显示去调用。
4.子类可以调用父类的方法。
继承笔记记到这里,掌握了新的知识在补充。
---------------------- ASP.Net+Android+IOS开发、 .Net培训、期待与您交流! ----------------------