本帖最后由 天地有我 于 2013-8-7 15:02 编辑
希望对你有帮助,我现在懂的也很少。
能力就这么点。
public class CarDemo
{
public static void print(BMW bmw)
{
bmw.printCar();
}
public static void print(SmallCar smallcar)
{
smallcar.printCar();
}
public static void print(Bus bus)
{
bus.printCar();
}
//提供一个方法,传入的类型为父类型(多态)
public static void print(Car car)
{
car.printCar();
}
public static void main(String[] args)
{
//不使用多态,希望通过 自己封装的方法来调用类中的打印方法。
//打印宝马
print(new BMW());
//打印小车
print(new SmallCar());
//打印汽车
print(new Bus());
System.out.println("-------------------------------------------");
//你会发现,如果用提供的方法去调用的话,每调用一种车就必须为其提供一个方法
//如果有一百种车就必须为其提供一百个方法。
//如果我们使用多态,并且要求使用提供的方法去调用的话,多态的优越性就体现出来了。
//只需要增加一个方法,使用传入的类型为父类型。
//(多态就是子类型的引用指向一个父类型的变量)
print(new BMW());
print(new SmallCar());
print(new Bus());
//这就是多态的好处。不用为每一种车独立定义一个方法了。只需要一个方法,
//根据多态就能调用到传入引用类型的方法
}
}
class Car
{
public void printCar()
{
System.out.println("car");
}
}
class BMW extends Car
{
public void printCar()
{
System.out.println("BMW");
}
}
class SmallCar extends Car
{
public void printCar()
{
System.out.println("smallcar");
}
}
class Bus extends Car
{
public void printCar()
{
System.out.println("bus");
}
}
|