简单明了——重载与重写区分及修饰符权限问题

方法的重载:

   1.方法名必须相同

   2.参数列表必须不同

   3.其他修饰符可以相同,也可以不同

   4.可以抛出不同异常

方法的重写:

   1.方法名、参数列表、返回值类型都必须相同

   2.访问修饰符必须大于或等于被重写的方法

   3.重写的方法中,不能抛出新的异常或被重写的方法更多、更大的异常,但一定会抛出异常。也就是说,只能抛出相同的异常或是被重写方法异常的子异常,还可以抛出非编译异常(RuntimeException)

   4.重写方法只会存在于具有继承关系的子类中,而当父类中的方法用private修饰时,即使子类中有重名方法,也不叫方法的重写

   5.非静态方法不能被重写成静态方法

访问权限:
修饰词:根据作用范围来进行划分

private默认的(default/friendly)protectedpublic
同一个类中可见可见可见
同一个包中不可见可见可见
不同的包中有继承关系不可见不可见可见
不同的包中没有继承关系不可见不可见不可见

四种访问权限:
1.public:只能修饰类、方法(含构造方法)、成员变量。其修饰的部分所有人都能访问;

2.默认修饰符(friendly):只能修饰类、方法(含构造方法)、成员变量。其修饰的部分只有同一包内的类能访问,
对于这个包之外的所有类,这个成员是private的;

3.private:只能修饰方法(含构造方法)、成员变量。其修饰的部分只能在自身类中访问。例如将某类的构造方法设置为private,
那么在其它类中就不能调用“new”来创建该类的实例,通常在该类中会对外提供一种方法,该方法能返回该类的实例;
再例如我们经常将成员变量设置为private的,对外提供set/get方法对其进行访问,在set/get方法中可做一些比如权限检测等操作,
而不是将域直接暴露给所有用户;

4.protected:只能修饰方法(含构造方法)、成员变量。

在同一包中具有包访问权限,相当于默认访问权限;

注意事项:在子类中,可继承不同包内父类的protected方法和属性,也只能在该子类中访问(除非重写方法或属性)

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值