标签:
namespace ConsoleApplication2
{
abstract class Fruit//抽象类abstract关键字
{
public abstract String Message
{
get;
set;
}//抽象属性
public abstract void GrowInArea();//抽象方法不能有代码实现,在函数名直接跟一个分号。
public void Say()
{
Console.WriteLine("我是水果,你是什么?");
}
}
class Apple : Fruit
{
public string _msg;
public override string Message
{
get
{
return _msg;
}
set
{
_msg=value;
}
}
public override void GrowInArea()
{
Console.WriteLine(Message);
Console.WriteLine("我是一个苹果,南方北方都可以种植我");
}
}
class Pineapple : Fruit
{
public string _message;
public override string Message
{
get
{
return _message;
}
set
{
_message = value;
}
}
public override void GrowInArea()
{
Console.WriteLine("我是一个菠萝,只能在南方看到我");
}
}
//定义两个接口 关键字interface
//接口可以看成一种“纯”的抽象类,它的所有方法都是抽象方法。
public interface ISwim//不需要class
{
void Swim();//方法
}
public interface IFood
{
void Cook();
}
//定义一个抽象类
public abstract class Bird
{
public abstract void Fly();//抽象方法
public void say()//不一定都是抽象的
{
Console.WriteLine("这是一只家鸭");
}
}
//继承一个抽象类,实现两个接口
public class Duck : Bird, ISwim, IFood
{ //实现ISwim接口
public void Swim()
{
Console.WriteLine("鸭子会游泳");
}
//实现IFood接口
public void Cook()
{
Console.WriteLine("北京烤鸭");
}
//实现抽象类Bird中的抽象方法
public override void Fly()
{
Console.WriteLine("只有野鸭才会飞");
}
}
}
class Program
{
static void Main(string[] args)
{
Fruit f;
f=new Apple();
f.Message = "Hello";
f.GrowInArea();
f = new Pineapple();
f.GrowInArea();
Duck d = new Duck();
d.Swim();//调用父类子类接口的任意公有方法
d.Cook();
d.say();
d.Fly();
Console.ReadLine();
}
}
标签:
原文地址:http://www.cnblogs.com/hanke123/p/4965938.html