java--多态4

public class PolyTest {

public void run(QQ qq) {

qq.run();

}

public void run(BMW bmw) {

bmw.run();

}

public static void main(String[] args) {

PolyTest t = new PolyTest();

BMW bmw = new BMW();

t.run(bmw);

QQ qq = new QQ();

t.run(qq);

}

}

class Car {

public void run () {

System.out.println("car");

}

}

class QQ extends Car {

public void run () {

System.out.println("qq");

}

}

class BMW extends Car {

public void run () {

System.out.println("bmw");

}

}


如果还要继续添加很多车辆,那么照上面这个办法来做的话就会很费事,由于这些车辆是继承一个父类Car,所以我们可以直接声明它们的父类,然后再用父类的引用指向增加的车辆:

public class PolyTest {

public void run(Car car) {

car.run();//直接声明一个父类型的参数为car的方法

}

public static void main(String[] args) {

PolyTest t = new PolyTest();

Car car = new BMW();//父类的引用指向子类对象

t.run(car);//把参数car传给父类型方法里的参数car

Car car1 = new QQ();//父类的引用指向子类对象。这里也可以QQ qq = new QQ();这样的话就是把qq这个引用向上转换成父类的引用car,结果是一样的

t.run(car1);把参数car1传给父类型方法里的参数car

//如果还要继续添加车辆的话,

//Car car2 = new ...();或是... ... = new ...();

//.....

}

}

class Car {

public void run () {

System.out.println("car");

}

}

class QQ extends Car {

public void run () {

System.out.println("qq");

}

}

class BMW extends Car {

public void run () {

System.out.println("bmw");

}

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值