sealed(密封类)
修饰class,代表该类无法被继承。
多态:需要通过继承来实现。
父类的引用,只想不同子类实例的时候,都是子类的成员,因此出现,当指向不同子类对象的时候,其成员的表现也会不同,由此呈现出来的状态,多态。
多态的分类:编译多态(重载);运行多态(重写)。
override
子类对父类方法的重写。父类对应的成员函数必须是virtual,且参数相同。
父类中的成员方法:
public virtual void Eat()
{
}
子类中的成员方法:
public override void Eat()
{
}
VS中 输入override,然后按空格键,之后选择相应函数
抽象方法:
父类中必须具备且无法用具体代码实现的方法。
特点:1、只声明,不实现。2、加abstract关键词
抽象类:
抽象类是不完整的,它只能作为基类,无法被实例化。关键词是batract。
带有抽象方法的类都是抽象类,抽象类不一定包含抽象方法。
特性:
1、抽象类不能实例化。
2、抽象类可以包含抽象方法和抽象访问器。
3、不能用sealed修饰符修饰抽象类,因为两个修饰符的含义是相反的。采用sealed修饰符的类无法继承,而abstract修饰符要求对类进行继承。
4、从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。
5、构造方法、静态成员方法不能声明为抽象方法。
与具体类比较:
1、抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
2、允许(但不要求)抽象类包含抽象成员。
3、抽象类不能被密封。
接口(interface):极度抽象的类
无成员变量、实例方法、实力属性,只有抽象方法或抽象属性。
接口中的方法,都是抽象的,因此无须加abstract。
接口中的方法,都是共有的,无须加访问修饰符。
一个类可以实现(继承)多个接口。
interface IUSB //定义抽象类
{
void Strat();
Void Stop();
}
class UDisk:IUSB
{
}
class Computer
{
public void CheckUSB( IUSB usb )
{
usb.Start();
}
public void CheckUSB( IUSB usb )
{
usb.Stop();
}
}
命名空间:对类进行分类管理的工具
程序集:编译出的exe或dll文件就是程序集。
程序集的名字就是编译出来的文件名