java 覆盖父类属性_Java进阶之路--继承中的方法重写与属性覆盖

1、Java继承中属性覆盖

重点:(属性的覆盖是针对子类与父类有相同的属性名而言的)

<1>final常量可以被覆盖

<2>静态变量和静态常量属于类,不属于对象,因此它们不能被覆盖。

<3>friendly(默认情况,不写)、protected和public修饰符并不影响属性的覆盖。

<4>由于private变量不可以被子类继承,受访问权限的限制,它不能被覆盖。

<5>属性的值取父类还是子类并不取决于我们创建对象的类型,而是取决于我们定义的变量的类型。

ParentClass subClass=new

SubClass(); //属性为父类的属性

2、Java方法重写

重点:(属性的覆盖是针对子类与父类有相同的方法名而言的)

<1>重载与重写的区别:

重载(也叫过载)时只与方法特征有关,那么什么是方式特征呢?一个方法的特征(也可叫方法签名)仅包括方法的名字、参数的个数、类型、顺序(实质上就是参数列表),而不包括方法的返回类型、访问修饰权限与所抛出的异常。

重写(覆写)是会进一步检查两个方法的返回类型是否相同、访问修饰权限是否缩小(假设public->protected方向是缩小,反之叫扩大)和抛出的异常范围是否扩大。重写时不可以缩小修饰符权限,不可以扩大异常范围。

重载一般是指在同一个类中多个方法间,但也可重父类的的方法,而重写只发生面父子与子类的方法间。

<2>私有方法(不可以重写)

因为子类不可以继承父类的私有方法,所以即使试着在子类覆写了父类的私有方法,不管访问权限修饰符是什么,在编译时也不会报错。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值