一個類和接口說明例子

Posted on 2008-05-09 18:02  Leon0812  阅读(179)  评论(0)    收藏  举报
  1using System;
  2using System.Collections.Generic;
  3using System.Text;
  4
  5namespace ClassLibrary1
  6{
  7
  8    //抽象類 
  9    public abstract class Tank
 10    {
 11        //構造函數
 12        public Tank()
 13        {
 14        }

 15
 16        //抽象方法
 17        public abstract void Run();
 18        public abstract void Run(string ss);
 19        public abstract void Shoot();
 20
 21        //一般方法 
 22        public void Fly()
 23        {}
 24
 25        //虛方法
 26        public virtual void Call()
 27        {
 28        }

 29        public  void Call(int j)
 30        
 31        }

 32
 33    }

 34
 35    //繼承抽象類
 36    public  class TankExtension : Tank
 37    {
 38        //重寫抽象方法,抽象方法一定要重寫 
 39        public override void Run()
 40        {
 41        }

 42
 43        public override void Shoot()
 44        {
 45        }

 46
 47        //重寫抽象方法.父類中有帶參數的其他同名方法,所以也叫多個重載
 48        public override void Run(string ss)
 49        {
 50        }

 51
 52        //重寫虛方法,可以不重寫。父類中有帶參數的其他同名方法,所以也叫多個重載
 53        public override void Call()
 54        {
 55            base.Call();
 56        }

 57
 58
 59    }

 60
 61    //調用 繼承抽象類的 具體類
 62    public class ConcreteTank  
 63    {
 64        //實例化類
 65        TankExtension te = new TankExtension();
 66        void App()
 67        {
 68            //只能方法中調用
 69            te.Call();
 70        }

 71    }

 72
 73//------------------------------------------------------------------------------
 74    //接口
 75    public interface iTank
 76    {
 77        //申明方法.接口中的方法都是抽象方法,所以都要被實現.而且不帶范圍修飾符,如public
 78         void RunI();
 79         void ShootI();
 80        void FlyI();
 81    }

 82
 83    //繼承實現接口,C#中,類的繼承只能單個,而接口可以實現多個,但是,類藥排在接口前
 84    public class MakeTank : Tank, iTank
 85    {
 86        //構造函數
 87        public MakeTank()
 88        {
 89        }

 90
 91        //實現抽象類中的方法
 92        public override void Run()
 93        {
 94        }

 95        public override void Shoot()
 96        {
 97        }

 98        public override void Run(string ss)
 99        {
100        }

101
102        //實現接口中的方法
103        public void RunI()
104        {}
105        public void ShootI()
106        {}
107        public void FlyI()
108        {}
109    }

110
111}

112

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3