多平台统一管理软件接口,如何实现多平台统一管理软件接口
198
2024-02-01
本文讲解"C#中的类:接口、抽象类、抽象方法、虚拟方法",用于解决相关问题。
1:接口的定义
interface 接口名
{
接口成员;
}
接口名必须以大写的英文字母I开头。
接口中不能定义字段,也就是说接口中只能包含属性、方法和事件的定义。
定义接口成员时不可使用访问修饰符,所有的接口成员都被隐式的定义为公有的。
接口成员只能有声明,不能有实现。
不用用关键字static、virtual、abstract或sealed来定义接口成员。
Type definition members are forbidden.(不懂)
2:抽象类和抽象方法
抽象类是用关键字abstract修饰的类。
抽象类不能被实例化。
抽象方法是用关键字abstract修饰的方法。
抽象方法只能被定义在抽象类中。
抽象方法不能有方法体。
如果子类继承了一个抽象类,那么这个子类必须要实现抽象类的所有抽象方法;否则,这个子类也必须是抽象类。
子类在实现抽象方法时,必要要使用关键字override。
3:虚方法
虚方法是用关键字virtual修饰的方法。
虚方法可以定义在普通类和抽象类中。
虚方法要有方法体。
子类可以使用override关键字重写父类的虚方法,也可以使用new关键字隐藏父类的虚方法。
4:override和new
override:重写父类的方法(抽象方法、虚拟方法)
new:覆盖(隐藏)父类的方法(普通方法、虚拟方法)
对于父类的普通方法(非虚拟方法和抽象方法),如果在子类中又定义了相同声明的方法,那么就是子类覆盖了(或隐藏了)父类的同名方法。
虽然在子类中可以直接用相同的方法声明来书写新的方法,但C#建议应该在方法声明的开头加上new关键字。
对于覆盖的方法在调用时的区别:
子类的引用指向子类的对象,调用的是子类的方法;
父类的引用指向子类的对象,调用的是父类的方法。
如果想要在使用父类的引用指向子类的对象时,调用子类的方法(这也是使用多态的一般目的),那么需要:将父类的方法声明为虚拟方法或抽象方法;在子类中使用override关键字进行方法重写。
5:显式的调用父类的方法
base.方法名(参数列表)
6:显式的调用自己的方法
this.方法名(参数列表)
7:实现接口中的方法(还要整理一下)
继承了接口的类必须要实现接口中所有方法,除了可以将接口中的方法实现为普通方法外,也可以将接口中的方法实现为虚拟方法或抽象方法。
如果在实现接口的类中实现接口中的方法时,在方法名之前加上了接口名限定符(即:接口名.方法名),这种方式称为“显式的实现接口成员”,被显式实现的接口成员只能被接口类型的变量调用。
关于 "C#
本文讲解"C#中的类:字段、属性、方法",用于解决相关问题。C++的类中可以有三种内容:成员变量、成员函数和友元。一般来说,成员变量描述类的属性,成员函数描述类的操作,友元则是一种特殊的声明,被声明为友元的函数 ...
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~