向上造型的意义:实现代码复用
当多种角色能干的事是一样的,可以将那些角色造型到超类数组中,统一访问
向上造型
超类型的引用指向派生类的对象
能点出来什么,看引用的类型------------这是规定,记住就行了
public class UploadDemo {
public static void main(String[] args) {
Aoo o1 = new Aoo();
o1.a = 1;
o1.show();
//o1.b = 2; //编译错误
//o1.test(); //编译错误,超类不能访问派生类的
Boo o2 = new Boo();
o2.b = 1;
o2.test();
o2.a = 2; //正确
o2.show(); //正确,派生类可以访问超类的
Aoo o3 = new Boo(); //向上造型
o3.a = 1;
o3.show();
//o3.b = 2; //编译错误
//o3.test(); //编译错误,能点出来什么,看引用的类型
}
}
class Aoo{
int a;
void show(){
}
}
class Boo extends Aoo{
int b;
void test(){
}
}
方法的重写
发生在父子类中,方法名相同,参数列表相同
重写方法被调用时,看对象的类型--------这是规定,记住就行了
重写遵循"两同两小一大"原则:-----------了解,一般都是一模一样的
两同:
方法名相同
参数列表相同
两小:
派生类方法的返回值类型小于或等于超类方法的
void和基本类型时,必须相等
引用类型时,小于或等于
派生类方法抛出的异常小于或等于超类方法的-------------API时讲
一大:
派生类方法的访问权限大于或等于超类方法的-------------明天讲
重写与重载的区别:-----------常见面试题
重写(override):发生在父子类中,方法名相同,参数列表相同
重载(overload):发生在同一类中,方法名相同,参数列表不同