关键字:
virtual: 虚方法,本身可以被实例化,也可以在派生类中重写该方法;
override:在派生类重写基类虚方法时声明,避免了C++中的潜在运行错误;
abstract:声明为抽象类、抽象方法,不能实例化;
sealed: 不可被继承类、不能被重写方法;
修饰符:
protected:只有本身与派生的类型能够访问;
private:只能在所属类型内能够访问;
internal:只能在包含它的程序集中访问;
接口:
语法声明与抽象类完全相同,但不允许提供接口中任何成员的实现;
定义接口时不允许包含重载运算符;
一般用 Ixxx(); 定义;
接口继承:
类继承接口:必须实例化所有成员与方法;
接口继承接口:新接口会拥有原接口的所有成员与自己的新成员;
Interface 与 Abstract 的区别:
借用一张java的区别,与C#有差别,但主体概念上差不多。
借用以上总结,C# 主要的差别在于:
1. 类不能多重继承,接口可以多重继承;
2. 类的成员可公有可私有,接口则都是公有;
is 与 as 操作符:
is:检查一个对象是否兼容于指定类型,并返回一个 Boolean 值;
as: 进行强制类型转换,能转换则返回实例,不能则返回 null;将 if(obj is ClassA){ Class A = (ClassA)obj; } 合并为了同一句:ClassA A = obj as ClassA;
时间: 2024-11-08 18:16:35