四时宝库

程序员的知识宝库

Java继承向上转型向下转型(java的上转型和下转型)

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();

}


}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接