学习笔记——面向对象第四天

笔记

1.向上造型的意义:-------实现代码复用

  • 超类型的引用指向派生类的对象
  • 能点出来什么,看引用的类型----------规定
超类型      派生类型
Animal o3 = nem Tiger();//向上造型

Person p1 = new Student();
Person p1 = new Teacher();
Person p1 = new Doctor();
p1/p2/p3.只能点出Person类中的
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(){
    }
}

2.方法的重写(Override或Overriding):重新写

  • 发生在父子类中,方法名相同,参数列表相同
  • 重写方法被调用时,看对象的类型-------规定
  • 重写遵循“两同两小一大”原则:--------
    • 两同:
      • 方法名相同
      • 参数列表相同
    • 两小:
      • 派生类方法的返回值类型小于或等于超类方法的
        • void 和基本类型时,必须相等
        • 引用数据类型时,小于或等于
      • 派生类方法抛出的异常小于或等于超类方法的—API
    • 一大:
      • 派生类方法的访问权限大于或等于超类方法的
public class OverrideDemo {
}

//超类大,派生类小
class Coo{
    void show(){ }
    double test(){ return 0.0;}
    Student say(){return null;}
}
class Doo extends Coo{
    //int show(){return 5;} //编译错误,void时必须相等
    //int test(){ return 0;} //编译错误,基本类型时必须相等
    //Person say(){return null} //编译错误,引用类型时必须小于或等于
    Student say(){return null;}
}
class 餐厅{
	viod 做餐(){做中餐}
}
//我还是想要做中餐--------不需要重写
class Aoo extends 餐馆{
}
//我想改做西餐------------需要重写
class Aoo extends 餐馆{
	void 做餐(){做西餐}}
	//我想在中餐之上加入西餐-----需要重写(先super中餐,再加入西餐)
	class Aoo extends 餐馆{
		void 做餐(){
		super.做餐();+ 做西餐}}

3.重写与重载的区别:
-重写(override):发生在父子类中,方法名相同,参数列表相同
-重载(overload):发生在统一类中,方法名相同,参数列表不同

补充:

1.何时向上造型:------代码复用

  • 当多种角色能干的事是一样的,可以将那多种角色造型到超类数组中,统一访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值