1.抽象类
2.接口
一、抽象类
1.概念
以abstract关键字声明的类,就是抽象类
2.特点
1)抽象类不能被实例化,使用抽象类的子类实例化对象
2)抽象类中可以保护抽象方法,实例方法和虚方法
3.语法
public abstract class 抽象类名{
public abstract 返回类型 抽象方法(参数);
public 返回类型 实例方法(参数){
方法体;
}
public virtual 返回类型 虚方法(参数){
方法体;
}
}
注意:
1)抽象方法必须在抽象类中,抽象类中不一定包含抽象方法.
2)子类继承抽象类必须重写抽象类所有抽象方法,如子类为抽象类则不需要重写所有抽象方法
二、接口
1.概念
对类实现的一种约束性的协议
2.特点
1)使用interface关键字声明
2)定义接口的名以大写I开头
3)接口中只能包含方法,属性,事件和索引器。但不能包含字段。
4)一个类中可以实现多个接口,实现接口时必须实现接口的所有成员。
5)因为接口成员默认是public,所以无需添加任何访问修饰符
3.语法
定义接口
public interface I接口名
{
//抽象方法
返回类型 方法名(参数);
//属性
返回类型 属性名{ get; set; }
}
实现接口
public class 类:I接口名
{
public 返回类型 接口方法名(参数)
{
}
}
2.接口
一、抽象类
1.概念
以abstract关键字声明的类,就是抽象类
2.特点
1)抽象类不能被实例化,使用抽象类的子类实例化对象
2)抽象类中可以保护抽象方法,实例方法和虚方法
3.语法
public abstract class 抽象类名{
public abstract 返回类型 抽象方法(参数);
public 返回类型 实例方法(参数){
方法体;
}
public virtual 返回类型 虚方法(参数){
方法体;
}
}
注意:
1)抽象方法必须在抽象类中,抽象类中不一定包含抽象方法.
2)子类继承抽象类必须重写抽象类所有抽象方法,如子类为抽象类则不需要重写所有抽象方法
二、接口
1.概念
对类实现的一种约束性的协议
2.特点
1)使用interface关键字声明
2)定义接口的名以大写I开头
3)接口中只能包含方法,属性,事件和索引器。但不能包含字段。
4)一个类中可以实现多个接口,实现接口时必须实现接口的所有成员。
5)因为接口成员默认是public,所以无需添加任何访问修饰符
3.语法
定义接口
public interface I接口名
{
//抽象方法
返回类型 方法名(参数);
//属性
返回类型 属性名{ get; set; }
}
实现接口
public class 类:I接口名
{
public 返回类型 接口方法名(参数)
{
}
}