abstract class Vehicle {
public abstract int getWheelCount( ) ;
public abstract int getMaxSpeed( ) ;
}
class vehicleInfo{
public void show( Vehicle v) {
// write your code he
System .
out .
println ( "This is class " + v.
getClass ( ) ) ; System .
out .
println ( "The WheelCount is " + v.
getWheelCount ( ) ) ; System .
out .
println ( "The MaxSpeed is " + v.
getMaxSpeed ( ) ) ; // System.out.println("");
}
}
class Car extends Vehicle {
@Override
public int getWheelCount( ) {
// write your code here
return 4 ;
}
@Override
public int getMaxSpeed( ) {
// write your code here
return 200 ;
}
}
class Motorcycle extends Vehicle {
@Override
public int getWheelCount( ) {
// write your code here
return 2 ;
}
@Override
public int getMaxSpeed( ) {
// write your code here
return 100 ;
}
}
class Bicycle extends Vehicle {
@Override
public int getWheelCount( ) {
// write your code here
return 2 ;
}
@Override
public int getMaxSpeed( ) {
// write your code here
return 30 ;
}
}
public class Main {
public static void main
( String [ ] args
) { Car car = new Car( ) ;
Motorcycle motorcycle = new Motorcycle( ) ;
Bicycle bicycle = new Bicycle( ) ;
vehicleInfo vI = new vehicleInfo( ) ;
vI.show ( bicycle) ;
vI.show ( car) ;
vI.show ( motorcycle) ;
}
}
YWJzdHJhY3QgY2xhc3MgVmVoaWNsZSB7CiAgICBwdWJsaWMgYWJzdHJhY3QgaW50IGdldFdoZWVsQ291bnQoKTsKICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0TWF4U3BlZWQoKTsKfQpjbGFzcyB2ZWhpY2xlSW5mb3sKICBwdWJsaWMgdm9pZCBzaG93KFZlaGljbGUgdikgewogICAgLy8gd3JpdGUgeW91ciBjb2RlIGhlCiAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXMgaXMgY2xhc3MgIit2LmdldENsYXNzKCkpOwogICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgV2hlZWxDb3VudCBpcyAiK3YuZ2V0V2hlZWxDb3VudCgpKTsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIE1heFNwZWVkIGlzICIrdi5nZXRNYXhTcGVlZCgpKTsKICAgLy8gU3lzdGVtLm91dC5wcmludGxuKCIiKTsKICB9Cn0KCmNsYXNzIENhciBleHRlbmRzIFZlaGljbGUgewogIEBPdmVycmlkZQogIHB1YmxpYyBpbnQgZ2V0V2hlZWxDb3VudCgpIHsKICAgIC8vIHdyaXRlIHlvdXIgY29kZSBoZXJlCiAgICByZXR1cm4gNDsKICB9CgogIEBPdmVycmlkZQogIHB1YmxpYyBpbnQgZ2V0TWF4U3BlZWQoKSB7CiAgICAvLyB3cml0ZSB5b3VyIGNvZGUgaGVyZQogICAgcmV0dXJuIDIwMDsKICB9Cn0KCmNsYXNzIE1vdG9yY3ljbGUgZXh0ZW5kcyBWZWhpY2xlIHsKICBAT3ZlcnJpZGUKICBwdWJsaWMgaW50IGdldFdoZWVsQ291bnQoKSB7CiAgICAvLyB3cml0ZSB5b3VyIGNvZGUgaGVyZQogICAgcmV0dXJuIDI7CiAgfQoKICBAT3ZlcnJpZGUKICBwdWJsaWMgaW50IGdldE1heFNwZWVkKCkgewogICAgLy8gd3JpdGUgeW91ciBjb2RlIGhlcmUKICAgIHJldHVybiAxMDA7CiAgfQoKfQoKY2xhc3MgQmljeWNsZSBleHRlbmRzIFZlaGljbGUgewogIEBPdmVycmlkZQogIHB1YmxpYyBpbnQgZ2V0V2hlZWxDb3VudCgpIHsKICAgIC8vIHdyaXRlIHlvdXIgY29kZSBoZXJlCiAgICByZXR1cm4gMjsKICB9CgogIEBPdmVycmlkZQogIHB1YmxpYyBpbnQgZ2V0TWF4U3BlZWQoKSB7CiAgICAvLyB3cml0ZSB5b3VyIGNvZGUgaGVyZQogICAgcmV0dXJuIDMwOwogIH0KCn0KCgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICBDYXIgY2FyID0gbmV3IENhcigpOwogICAgICAgTW90b3JjeWNsZSBtb3RvcmN5Y2xlID0gbmV3IE1vdG9yY3ljbGUoKTsKICAgICAgIEJpY3ljbGUgYmljeWNsZSA9IG5ldyBCaWN5Y2xlKCk7CiAgICAgICB2ZWhpY2xlSW5mbyB2SSA9IG5ldyB2ZWhpY2xlSW5mbygpOwogICAgICAgdkkuc2hvdyhiaWN5Y2xlKTsKICAgICAgIHZJLnNob3coY2FyKTsKICAgICAgIHZJLnNob3cobW90b3JjeWNsZSk7CiAgICB9Cn0K