面向对象Lesson4

1、向上造型:

超类型的引用指向派生类的对象;

能点出来什么,看引用的类型

public class UploadDemo{

public static void main(String[ ] argd){

Aoo o1=new Aoo( );

o1.a=1;

       //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{

init b;

void test( ){

}

}

2、方法的重写:重新写

发生在父子类中,方法名相同,参数列表不同;

重写方法被调用时,看对象的类型;

class 餐馆{

void 做餐( ){ 做中餐 }

}

//1)我还是想做中餐-------不需要重写

class Aoo extends 餐馆{

}

//2)我想改做西餐-----------需要重写

class Aoo extends 餐馆{

void 做餐(  ){  做西餐  }

}

//3)我想在中餐之上加入西餐--------需要重写(先super中餐,再加入西餐)

class Aoo extends 餐馆{

 void 做餐( ){super.做餐( );+做西餐}

}

#重写遵循“两同两小一大”原则:

两同:方法名相同;参数列表相同;

两小:

#派生类方法的返回值类型小于或等于超类的:

void 和基本类型时,必须相等;

引用类型时,小于或等于;

派生类方法抛出的异常小于或等于超类的;

#一大:

派生类方法的访问权限大于或者等于超类的

3、重写与重载的区别:

重写(override):发生在父子类中,方法名相同,参数列表相同

重载(overload):发生在同一类中,方法名相同,参数列表不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值