class Program
{
static void Main(string[] args)
{
//1傻挂、有一個交通工具類Vehicle入客,
//將它作為基類派生小車類Car荣倾、卡車類Truck和輪船類Boat疤估,
//定義這些類并定義一個虛函數(shù)用來顯示各類信息。
//虛函數(shù)就是重寫
Vehicle car = new Car();
//car.fun() 子類調(diào)用不了自己的普通方法 除非重寫照激;
Vehicle truck = new Truck();
Vehicle boat = new Boat();
//car.ZuoYong();
//truck.ZuoYong();
//boat.ZuoYong();
//2发魄、定義貓科動物Animal類,由其派生出貓類(Cat)和豹類(Leopard)俩垃,
//二者都包含虛函數(shù) Sound( )励幼,
//要求根據(jù)派生類對象的不同調(diào)用各自重載后的成員函數(shù)(向上轉(zhuǎn)型)。
Animal cat = new Cat();
cat.Catch();
cat.Catch("魚");
Animal leoprad = new Leopard();
leoprad.Catch();
leoprad.Catch("喜羊羊");
}
}
class Animal
{
public Animal()
{
// this.Catch();
}
//重載必須寫在同一個類中
public void Catch()
{
Console.WriteLine("捕獲行為口柳!");
}
public void Catch(string s)
{
Console.WriteLine("捕獲了:" + s);
}
}
class Boat:Vehicle
{
public Boat()
{
this.ZuoYong();
}
public override void ZuoYong()
{
Console.WriteLine("子類--輪船的主要作用是在水上行走苹粟!");
}
}
class Car:Vehicle
{
public Car()
{
this.ZuoYong();
}
public override void ZuoYong()
{
Console.WriteLine("子類-小汽車的主要功能是載人!");
}
public void fun()//自身的方法 如果由基類派生出子類跃闹;類對象名調(diào)用不了自己的方法嵌削;如:Vechicle car=new Car();
{
Console.WriteLine("子類自己的普通方法!");
}
}
class Cat:Animal
{
}
class Leopard:Animal
{
}
class Truck:Vehicle
{
public Truck()
{
this.ZuoYong();
}
public override void ZuoYong()
{
Console.WriteLine("子類-卡車的主要作用是運輸貨物望艺!");
}
}
class Vehicle
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
public virtual void ZuoYong() {
Console.WriteLine("父類-交通工具主要是運輸苛秕!");
}
public Vehicle() {
//this.ZuoYong();
}
}