继承可以使子类自动拥有父类可被继承的成员,还可以拥有自己的成员。
继承的三大特点
单根性:
子类只能拥有一个父类,但可以有很多子类,也就是说MyClassTwo只能继承MyClassOne和MyClassThree其中的一个类,但可以让另一个类成为自己的子类。
class MyClassOne
{
private int numberone;
}
class MyClassTwo:MyClassOne
{
private int numbertwo;
}
class MyClassThree:MyClassTwo
{
public int NumberThree { get; set; }
}
传递性:
父类定义的成员会被子类一直继承下去,不会越来越少,如下在MyClassThree和MyClassTwo中都可以通过base来访问到MyClassOne的numberone属性,不会消失。
class MyClassOne
{
public int numberone;
}
class MyClassTwo:MyClassOne
{
public int numbertwo;
public MyClassTwo()
{
base.numberone = 1;
}
}
class MyClassThree:MyClassTwo
{
public int NumberThree { get; set; }
public MyClassThree()
{
base.numberone = 1;
}
}
成员访问性:
在父类中被private修饰符修饰的属性无法在子类中访问,例如MyClassOne中的属性被private修饰符修饰之后在其子类中就无法访问了,base后的属性就会提示无法访问具有一定的保护性:
class MyClassOne
{
private int numberone;
}
class MyClassTwo:MyClassOne
{
public int numbertwo;
public MyClassTwo()
{
base.numberone = 1;
}
}
class MyClassThree:MyClassTwo
{
public int NumberThree { get; set; }
public MyClassThree()
{
base.numberone = 1;
}
}
与继承有关的:
this关键字:
能够访问本类的成员(成员指属性和方法)
base关键字:
能够访问父类的成员(成员指属性和方法)
sealed关键字:
它的作用是密封类,使被修饰的类无法被其他的类继承其成员。
注意:
子类会首先隐式调用父类的无参构造方法,在调用自身的构造方法,如果父类中没有无参构造方法则代码环境就会提示错误,为了避免错误,建议在使用继承时手动在父类中添加无参的构造方法。
如有错误请与博主联系修改或删除。