接口与抽象类
来源:互联网 发布:黑客帝国重访矩阵 编辑:程序博客网 时间:2024/05/17 04:09
抽象类
当抽象类作为父类时,他的子类对其中的抽象类方法有不同的方法体
简单举例为:
classHorse:Mammal,ILangBound
{
public int NumerOfLegs();
{
return 4;
}
}
interface ILandBound
{
int NumberOfLegs();
}
接口例子
main函数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
class Program
{
static void Main(string[] args)
{
Horse horse = new Horse("斑马维尼");//初始化一个horse的函数
Console.WriteLine(horse.getName());//输出horse的名字
horse.ChrewGrass();//调用吃草这个函数
Sheep sheep = new Sheep("绵羊妮妮");初始化一个sheep的函数
Console.WriteLine(sheep.getName());//输出sheep的名字
sheep.ChrewGrass();//吃草
Cow cow = new Cow("小牛麦克");初始化一个cow的函数
Console.WriteLine(cow.getName());
cow.ChrewGrass();//吃草
ILandBound landbound = horse;
Console.WriteLine(landbound.NumberOfLegs());
Console.ReadKey();
}
}
}
sheep类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
class Sheep:GrazingMammal,ILandBound
{
public Sheep(string name):base(name)
{
}
public int NumberOfLegs()
{
throw new NotImplementedException();
}
public override void ChrewGrass()
{
Console.WriteLine("Chrewing Grass");
}
}
}
horse类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
class Horse:GrazingMammal,ILandBound
{
public Horse(string name):base(name)
{
}
int ILandBound.NumberOfLegs()
{
return 4;
}
public override void ChrewGrass()
{
Console.WriteLine("Chrewing Grass");
}
}
}
banba类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
class BanBa:Horse
{
public BanBa(string name)
: base(name)
{
}
}
}
cow类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
class Cow:GrazingMammal
{
public Cow(string name)
: base(name)
{
}
public override void ChrewGrass()
{
Console.WriteLine("反刍");
}
}
}
mammal类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
class Mammal
{
private string name;
public string getName()
{
return name;
}
public Mammal(string initialName)
{
name = initialName;
}
public void Breath()
{
Console.WriteLine(name + "这个哺乳动物正在呼吸");
}
public void SunkleYoung()
{
Console.WriteLine(name + "这个哺乳动物正在哺乳");
}
}
}
ILandBound类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
interface ILandBound
{
int NumberOfLegs();
}
}
IJourney类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
interface IJourney
{
int NumberOfLegs();
}
}
IGrazable类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
interface IGrazable
{
void ChrewGrass();
}
}
GrazingMammal类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 作业3接口
{
abstract class GrazingMammal:Mammal,IGrazable
{
public GrazingMammal(string name):base(name)
{
}
public abstract void ChrewGrass();
}
}
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 抽象类与接口
- 抽象类与接口
- 抽象类与接口
- 接口与抽象类
- 接口与抽象类
- ubuntu和windows修改default_ttl值
- 世界坐标系空间,页面空间,设备空间,物理设备空间
- 为何越来越多有经验的CEO奋斗在创新第一线?
- Android SDK Manager中无法下载API问题
- 函数参数是如何传递的
- 接口与抽象类
- 程序在内存中运行的奥秘
- 基于IE与css的表格行头与多层列头锁定方法(转)
- Flex连接J2EE技术选择
- ROWID
- do...while(0)的妙用
- MVC codefirst
- 内存对齐
- Ubuntu 8.10 下安装 lxr 与 glimpse