标签:
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