1、接口相当于没有方法实现的抽象类(但是它并不是一个类,而且接口里不能有方法)。
public interface Flyable
{
void Flay();
}
2、一个类只能继承自一个类,但是可以实现多个接口。
3、一个抽象类中可以定义实现代码,也可以不定义。但是接口不能定义实现代码(哪怕方法中只是一个空的括号{},也是空实现)。
4、接口的多态特性、类型转换、is、as 和类基本一样。
5、抽象类定义的是公共的实现和能力,接口只能定义公共的能力。
6、接口相当于给类打一个标签,标志这个类有这种能力。
7、接口中的方法不能声明public、private等,因为没有意义。接口中能声明:方法,属性(属性本质是两个方法),索引器(所引器的本质也是一个方法),不能声明字段。
8、冒号的作用有两种:作用是一样的,叫法不一样而已。(1)“继承”类。(2)“实现”接口。
9、快速实现接口里的方法,可以不用手动写代码,直接鼠标放在接口名称上,右键——>实现接口——>实现接口。
10、用interface定义接口,定义接口名称一般用I开头(规矩)。接口中的成员不能有访问级别修饰(public、private等)。
11、在C#中,一个类不能“继承”多个父类,但是一个类可以“实现”多个接口。接口中不能声明字段。
12、接口的多态特性、类型转换、is、as 和类基本一样。
(1)object是所有类的父类,所以可以用object来new一个对象。
(2)跟类一样,接口也可以用“is”来判断。
(3)跟类一样,接口也可以用“as”来进行类型转换。
(4)“1”和“2”都是转换类型,区别是:第一种转换类型转换失败时会报错,第二种转换类型转换失败时会返回null。
12、定义一个字段,如:
int age;
13、定义一个属性,如:
int age { get; set; }
14、属性的本质是两个方法,相当于set age()方法和get age()方法。属性是用字段来实现的。
15、接口中可以定义方法。Void Fly();就是一个方法。所以接口中也可以定义属性。
16、这是一个只读属性: