JAVA面向对象③(向上造型,方法重写)

1.向上造型:当多种角色能干的事是一样的,可以将那多种角色造型到超类数组中,方便访问(实现代码复用)

  • 超类型的引用指向派生类对象
  • java规定能点出来什么看引用类型
超类型↓         派生类↓
Animal o3=new  Tiger();//向上造型        超类型的引用指向派生类对象
o3.只能点出Animal类中的                  能点出来什么,看引用类型----这是规定
Person p1=new  Teacher();
Person p2=new  Doctor();
p1/p2.只能点出Person类中的,不能点出派生类中的
SeaObject o5=new Battleship();
SeaObject o6=new Mine(200,300);
o5/o6.只能点出SeaObject类中的
  class Animal{}//动物类
  class Tiger extends Animal{}//老虎类继承动物类
  Animal o1=new Animal();//这句话怎么读?一个动物对象是动物类型的:动物是动物√
  Tiger o2=new Tiger();//一个老虎对象是老虎类型的:老虎是老虎√
  Animal o3=new Tiger();//一个老虎对象是动物类型的:老虎是动物√
  Tiger o4=new Animal();//动物是老虎× 编译错误

 

2.方法的重写:重新写

  • 发生在父子类中,方法名相同,参数列表相同
  • 重写方法被调用时,看对象类型----Java规定
  • 重写遵循两同两小一大原则:(了解),
  • 两同:方法名相同,参数列表相同
  • 两小:派生类方法的返回值类型小于或等于超类方法的,派生类方法抛出的异常小于或等于超类方法的
  1. void和基本类型时,必须相等
  2. 引用类型时,小于或等于 (超类大,派生小)
class Coo{
    void show(){}
    double test(){return 0.0;}
    Student say(){return null;}//Student类型 方法名say 因为需要返回值所以return null;
    Person sayHi(){return null;}
}
class Doo extends Coo{
    //int show(){return 5;}//编译错误,void时必须相等
    //int test(){return 0;}//编译错误,基本类型时必须相等
    //Person say(){return null;}//编译错误,引用类型时必须小于或等于
    //Student sayHi(){return null;}//正确
}
  • 一大:派生类方法的访问权限大于或等于超类方法的
class 餐馆{
    void 做饭(){
        做中餐    
    }
}
//我做中餐-------------不需要重写
class Aoo extends 餐馆{
    
}
//我想改做西餐---------需要重写
class Aoo extends 餐馆{
        void 做饭(){做西餐}
}
//我想中餐加西餐(需要重写,先super中餐,再加入西餐)
class Aoo extends 餐馆{
        void 做饭(){super.做饭();+做西餐}
}
class Aoo{
    void show(){
    }
}
class Boo extends Aoo{
        void show(){
            super.show();//调用超类的show方法
    }
}
  1. 重写与重载的区别:面试题
  • 重写(override):发生在父子类中,方法名相同,参数列表相同
  • 重载(overload):发生在同一类中,方法名相同,参数列表不同

补充

  1. 向上造型:---实现代码的复用
  • 当多种角色能干的事是一样的,可以将那多种角色造型到超类数组中,方便访问(实现代码复用)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值