JAVA访问控制修饰符

访问控制修饰符介绍

对于访问控制修饰符,有4种不同的访问权限,如果不记住的话有时会很混乱,因此特地写了这篇博文,以备回顾

public

公开,最具开放性,对所有类可见。可用于类、接口、变量、方法
特点,对所有类可见

修饰符public
当前类true
同一包内true
子孙类(同一包内)true
子孙类(不同包)true
其他包true

protected

保护性,对同一包内的类和所有子类可见。可用于变量、方法。不能修饰类(外部类)
特点:同包或子类

修饰符protected
当前类true
同一包内true
子孙类(同一包内)true
子孙类(不同包)true/false
其他包false

对于子孙类(不同包),在这里说明一下,子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法,即在不同包中,在子类中可以出现子类对象从基类继承来的protected方法,但不可以出现基类对象的protected方法,但基类对象的public方法还是可以出现的。

default

默认,即什么都不写的话,默认就是这种权限,可用于类、接口、变量、方法
特点是在同一个包内可见

修饰符default
当前类true
同一包内true
子孙类(同一包内)true
子孙类(不同包)false
其他包false

private

私有化,或本地化,权限最高,只允许在同一类可见。可用于变量、方法。
特点是只给本类可见
不能修饰类(外部类)

修饰符private
当前类true
同一包内false
子孙类(同一包内)false
子孙类(不同包)false
其他包false

访问控制和继承

对于访问控制和继承,有几条规则

  • 父类中声明为 public 的方法在子类中也必须为 public。
  • 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
  • 父类中声明为 private 的方法,不能够被继承。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值