资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,网络安全课程体系(两年制),第八章 抽象类、接口,银河信息技术学院 李灯登,课程目标,回顾面向对象三大特点,抽象(封装),继承,多态,掌握抽象类定义及其用法,掌握接口定义及其用法,面向对象三大特点,抽象,继承,多态,多态,多态性是允许你将父类对象设置成为和一个或更多的他的子类对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。,虚方法,(Virtual),虚方法就是允许被其子类重新定义的成员函数。而子类重新定义父类虚函数的做法,称为“覆盖”(,override,),或者称为“重写”。,public virtual void Speak(),public override void Speak(),覆盖,override,和重载,overload,覆盖是指子类重新定义父类的虚函数的做法。,重载,是指允许存在多个同名函数,而这些函数的参数表不同(参数个数不同,参数类型不同,参数顺序)。,多态的作用是什么,封装可以隐藏实现细节,使得代码模块化,继承可以扩展已存在的代码模块(类);它们的目的都是为了,代码重用。,多态则是为了实现另一个目的,接口重用!,抽象类,(Abstract Class),抽象类的意图是为从它衍生出去的所有类都创建一个通用接口。,抽象类的特点,类有两种:一种是具体类,另一种是抽象类。具体类可以实例化,抽象类不可以实例化。,在类声明中使用,abstract,修饰符以指示类只能是其他类的基类。,public class Animal,public abstract class Animal,抽象类不能实例化。,从抽象类派生的非抽象类必须包括继承的所有抽象方法的实现。,在方法声明中使用,abstract,修饰符以指示此方法不包含实现。,public abstract class Animal,public abstract void Speak();,抽象类继承,public abstract class Animal,public abstract void Speak();,public class,Monkey:Animal,public override void Speak(),Console.WriteLine(“Monkey,Speak”);,抽象方法具有以下特性:,(,1,)抽象方法是隐式的,virtual,方法。,(,2,)只允许在抽象类中使用抽象方法声明。,(,3,)因为抽象方法声明不提供实现,所以没有方法体;,(,4,)在抽象方法声明中使用,static,或,virtual,修饰符是错误的。,(,5,)在派生类中,通过包括使用,override,修饰符的属性声明可以重写抽象的继承属性。,(6),抽象内中的访问修饰符不能是私有的,演示抽象类创建,密封类,密封类不能用作基类。,它也不能是抽象类。,密封类主要用于防止派生。,public,sealed,class Animal,接口,(Interface),完全的抽象类,(,抽象类里面所有方法都是抽象,),通过关键字,Interface,声明,接口的名字必须以,I,开头,比如,IStorable,public interface,IAnimal,void Speak();,接口就是规则,当一个类实现了这个接口那它必须有接口里面定义的方法,属性,和事件,接口描述了一种,类必须遵守的规则,.,演示创建和使用,interface,类的创建者可以选择不去实现任何接口,或者选择实现一个或多个接口。这个完全取决于你的软件设计,要注意的是如果一旦你选择了去实现一个接口,就必须实现接口所定义的所有东西。,演示 实现多个,interface,接口的访问修饰符通常都是,public,,使用其它的也可以,但是接口中的成员访问修饰符可以不写,.,基列表表示这个接口可以实现和扩展的接口列表,演示 扩展,interface,子类可以从一个基类和多个接口继承,演示 类继承和多接口实现,帮助学员做最好的自己,
展开阅读全文