package model2.unit2;
public class Java08 {
public void m(Car c) {
Audi a = (Audi)c;
}
public static Car m2() {
return null;
}
public static void main(String[] args) {
double e = 2;
double i = e;
Car x = m2();
// 继承体系中的类型转换
// 向上转型:子类型转换为父类型:没问题、可以
// 向下转型:父类型转换为子类型:强制类型转换
// Audi a = new Audi();
// Car b = a;
Car c = new Audi();
Audi d = (Audi)c;
}
}
// 父类
abstract class Car {
abstract void driver();
}
// 子类
class Audi extends Car {
@Override
void driver() {
System.out.println("驾驶奥迪");
}
void m1(){
System.out.println("奥迪汽车独有的功能");
}
public static void main(String[] args) {
// 继承中:子类型转换为父类型
Audi a = new Audi();
Car b = a;
// 继承中:父类型转换为子类型、强制类型转换
Car c = new Audi();
Audi d = (Audi)c;
}
}
class Benz extends Car {
@Override
void driver() {
System.out.println("驾驶奔驰");
}
void m2(){
System.out.println("奔驰汽车独有的功能");
}
public static void main(String[] args) {
Object c = new Benz();
Car c1 = new Audi();
c1.driver();
Audi c2 = (Audi)c1;
c2.m1();// 如果调用子类自己的方法、需要转换为子类型才可以调用。
// Benz a = new Benz();
// a.driver();
// Car b = new Benz();
// b.driver();
}
}