Java继承之修饰符

至于修饰符,子类方法的修饰符范围与父类相同或者比父类的范围大,比如父类为default方法,子类重写的方法修饰符可以是default或public等,但不可以是private,若为private则会报错 ,它们范围关系为:public>protected>default>private

public
  • public修饰的类可以被继承
  • public修饰的方法可以被继承,可以被重写
  • public修饰的变量可以被继承,可以被修改,使用super或者父类对象引用
protected
  • protected不可以用来修饰类,继承概念没有意义
  • protected修饰的方法可以被继承,可以被重写
  • protected修饰的变量可以被继承,可以被修改,使用super或者父类对象引用
default
  • default修饰的类可以被继承
  • default修饰的方法可以被继承,可以被重写
  • default修饰的变量可以被继承,可以被修改,使用super或者父类对象引用
private
  • private不可以用来修饰外部类,可修饰内部类,因为内部类相当于成员方法,如果类可以使用private来修饰,表示该包下的这个类不能被其它类访问,那么该类也失去了存在的意义的作用继承概念没有意义
  • private修饰的方法可以被继承,但被隐藏,且无法访问
  • private修饰的变量可以被继承,但被隐藏,一般无法访问,除非在父类private变量设置getter/setter方法

进行延伸final和static

final
  • final修饰的类不可被继承
  • final修饰的方法可以被继承,但不可以被重写
  • final修饰的变量可以被继承,但不可以被改变
static
  • static不可以用来修饰外部类(可修饰内部类,因为内部类相当于成员方法),继承概念没有意义
  • static修饰的方法可以被继承,但是不能被重写,因为静态方法是类在加载时就被加载到内存中的方法,在整个运行过程中保持不变(非静态方法是在对象实例化时才单独申请内存空间,为每一个实例分配独立的运行内存,因而可以重写),而是被隐藏,当子类也创建同名的静态方法时也会显示,但是这不是重写来的,而是子类本身的static方法,static是系统级别的,与所在的类共存亡。
  • static修饰的变量可以被继承,可以被改变,但这里的改变与static修饰的方法的改变原理是一样的,是被隐藏
访问修饰符本类同包子类其他
private
default
protected
public
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值