C# 类支持一个基类和多个接口的继承,结构支持多个接口的继承,没有基类的类,默认继承自object类。
public class A :BaseClass, Inf_A, inf_B{
}
// public class 中的public 表面该类在名称空间之外可见
// C# 取消了 C++ 基类的访问修饰符(C++ 中 基类前要加访问修饰符,一般加public)
接口,接口是接口,类是类,不一样
public interface Inf_1{
void func_a();
void func_b();
}
//接口只是定义方法,在被继承的类中实现
//接口可以派生子接口
public interface Inf_2: Inf_1{
void func_c();
public int Age{set;get}; //属性可在接口中定义
}
虚函数(virtual),抽象函数(abstract),密封函数(sealed)和函数重写 (override)
1、可能被子类重写的函数申明为虚函数,虚函数被子函数重写后可以在子类中调用父类的实现 语法是 base.fun();base 是基类 this是自己。
2、基类没有实现需要被子函数重写实现的函数为抽象函数
3、不想被子类重写的函数为密封函数
抽象类,密封类//一般不用
派生类的构造函数
public class A :BaseClass, Inf_A, inf_B{
int a;
int b;
public A(int a,int b) : base()//构造函数1 比较全面,在这里调用基类构造
{
this.a = a;
this.b = b;
}
public A(int a) : this(a,0)//构造函数2 初始化了一部分,还要初始化其他参数,所以先调用构造函数1
{
}
}
可见性修饰符
public 透明
protect 派生类可见
internal 程序集可见,命名空间内
private 自己可见
本文详细介绍了C#中的类继承和接口实现,包括类如何继承基类和多个接口,以及接口的继承特性。同时讲解了虚函数、抽象函数、密封函数和函数重写的概念。还探讨了构造函数的使用以及可见性修饰符的作用。此外,抽象类和密封类的特性也有所提及。
637





