向上转换,向下转换,强制转换
先来一段代码!!!
class 类人猿{
void crySpeak(String s){System.out.printf(s);
}
}
class People extends 类人猿{
void computer(int a,int b){
int c=a*b;
System.out.println(c);
}
void crySpeak(String s){
System.out.printf("* * *"+s+"* * * \n");
}
}
public class Application5_9 {
public static void main(String args[]){
类人猿 monkey=new People(); //子类创建monkey,实体为子类,但是父类引用monkey,此时 :::monkey的实体是子类,但是功能减弱,这是向上转型
monkey.crySpeak("I love the game");
People people=(People)monkey; //向下转型:这时候monkey是父类引用,这个代码是将父类引用的准换成子类引用的,才能实现本类引用本类创建的 对象,功能加强!
people.computer(10,10);
}
}
1.向上转型方法(People是父类,American是子类)
People person;
person=new American;
或
People person;
American anAmerican=new American();
person=anAmerican;
或
People person=new American(); / /直接转换
2.分析
People person=new American(); //子类创建person,实体为子类,但是父类引用person,此时 :::person的实体是子类,但是功能减弱了
如果想要将其功能恢复,那么我们来分析一下,之所以功能减弱,是因为父类引用了子类创建的对象,本来子类是强大的,但是用父类引用之后就减弱了,所以,如果恢复的子类引用子类的话,是不是就会强大的呢,答案是 是的。
运用到强制转换:
People people=(People)person: // person的实体是子类,括号里的People是将要转换的类型