class Program
{
static void Main(string[] args)
{
BasketBall basket = new BasketBall(5);
//basket.showFulei();
basket.Playing(3);
basket.Playing("男");
TableTennis table = new TableTennis();
YumaoBall yumao = new YumaoBall();
Console.ReadKey();
}
}
class Ball
{
private int r;
private string colour = "紅色";
private string speed = "2m/s";
public string Speed
{
get { return speed; }
set { speed = value; }
}
public string Colour
{
get { return colour; }
set { colour = value; }
}
public int R
{
get { return r; }
set
{
if (value > 0)
{
r = value;
}
else
{
Console.WriteLine("輸入半徑不能小于零!");
}
}
}
public Ball()
{
Console.WriteLine("球類不帶參的構(gòu)造函數(shù)!");
}
public Ball(int _r)
{
r = _r;
Console.WriteLine("球類帶參的構(gòu)造函數(shù)!");
}
public void Mainji()
{
Console.WriteLine("面積是{0}", 4 * Math.PI * r * r);
}
public void Tiji()
{
Console.WriteLine("體積是{0}", 4 / 3 * Math.PI * R * R);
}
//----------虛函數(shù)-重寫--------//注意重寫跟重載的方法區(qū)別 寫在父類和子類中
//父類 virtual 虛方法
//子類 override
public virtual void Moving(string speed)
{
Console.WriteLine("父類的移動(dòng)方式:滾!");
}
//覆蓋:寫在父類和子類中 使用關(guān)鍵字new 返回類型相同 方法同名
public new void ZuoYong()
{
Console.WriteLine("父類-球的作用效果!");
}
}
class BasketBall:Ball
{
public BasketBall()
{
Console.WriteLine("子類不帶參的構(gòu)造函數(shù)!");
}
public BasketBall(int _r)
: base(_r)
{
if (_r > 0)
{
this.R = _r;
}
else
{
Console.WriteLine("輸入半徑不能小于零!");
}
Console.WriteLine("子類帶參的構(gòu)造函數(shù)!");
}
public void showFulei()
{
base.Tiji();
Console.WriteLine(base.Colour);
}
//----------------------------重載-------------------
//方法名一樣 傳參的類型不一樣 與返回值無關(guān)- 在子類使用-------------------
public void Playing(int age) {
if (age<5)
{
Console.WriteLine("用腳踢!");
}
}
public void Playing(string sex)
{
if (sex == "男")
{
Console.WriteLine("用手打!");
}
}
}
class TableTennis:Ball
{
public TableTennis()
{
// this.Moving();
this.ZuoYong();
}
//重寫是 返回類型一樣 方法名必須一樣 參數(shù)一樣 加上關(guān)鍵修飾符
public override void Moving(string str1)
{
Console.WriteLine("冰瓶子類球移動(dòng)方式為彈!");
}
public new void ZuoYong()
{
Console.WriteLine("子類-兵乓球的作用效果!");
}
}
class YumaoBall:Ball
{
public YumaoBall()
{
// this.Moving();
}
//重寫是 方法名必須一樣 參數(shù)一樣
public override void Moving(string s1)
{
Console.WriteLine("羽毛球子類球移動(dòng)方式為拋!");
}
protected new void ZuoYong()
{
Console.WriteLine("子類-羽毛球的作用效果!");
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。