今天老师讲的是接口和抽象类。最后一节这里复习了数组..在接口就是用关键字interface,抽象类是abstract.今天老师讲的接口可以听得懂、就是抽象类这块还是有点模糊,不过经过下午思路的整理还是搞懂了。
接口:是抽像类的变体,在接口中,所有方法都是抽像的, 接口里没有方法体,接口不可以实例化。
关键字: interface
结构:interface+名+{ 类型+方法名+(参数) }
Program类
class Program
{
static void Main(string[] args)
{
//类可以继承多个接口但只能继承一个父类。。。
horse H = new horse("小马");
ILandBound I = H;
int legs = I.tui();//调用的 ILandBound 接口中的tui()方法;
Console.WriteLine(legs);
legs = L.tui();
Console.WriteLine(legs);
Console.ReadKey();
}
}
}
ILandBound 接口中
interface ILandBound
{
int tui();
}
horse 类中
class horse:Mammal,ILandBound,ILiangQi //当一个类继承父类和接口时,父类名在前,接口名在后。
{
public horse(string name) : base(name) { }//传name;
int ILandBound.tui() //当只继承一个接口时,要加Public 不是一个时 不能加public。
{
return 4;
}
int ILiangQi.tui() //当该类继承两个或两个以上的接口时,方法名前需要加上所属接口的 接口名+.
{
return 2;
}
ILiangQi接口中
interface ILiangQi
{
int tui();
}
显示的结果就是4,2。
抽象类和抽象方法
关键字:Abstract
作用: 它用于要创建一个体现某些基本行为的类,并为该类声明方法
用法:
GrazingMammal 类
abstract class GrazingMammal:Mammal,IGrazable // 抽象类 关键字 abstract
{
public GrazingMammal(string name) : base(name) { }
public abstract void ChrewGrass(); //抽象方法 默认为虚方法所以可以不用virtual修饰就能使用override。
//{
// Console.WriteLine("Chrewing Grass...");
//}
cow类
class cow:GrazingMammal
{
public cow(string name) : base(name) { }
public override void ChrewGrass()
{
Console.WriteLine("反刍。。。");
}
}