某汽车公司有一款新车上市,但该公司规定这款车必须由公司内部人员驾驶,那么也就是这样
代码如下 | 复制代码 |
public class NewCar{ protected void drive() { |
不过你说我买来一辆车总不能让这汽车公司的人来为我开车吧,所以这车的驾驶功能应该对我开放了才行,当然,只有属于我的车我才可以这样做,所以
代码如下 | 复制代码 |
class MyNewCar extends NewCar { @Override } |
这样,我自己的车就可以让任何人来驾驶了,包括借给哥们,或者送给女朋友(她们可能更希望你开车带她去兜风)
代码如下 | 复制代码 |
NewCar car = new NewCar(); car.drive();// no no no 这车可不是我的,不能随便开的 MyNewCar myCar = new MyNewCar(); myCar.drive();// ok 随便开,别超速哦~ |
所以呢,java设计这个可以提高权限的做法就是为了让子类可以自己去决定它的方法是否可以开放给调用者。 当然了,你如果把原本父类public的方法给protected了,那么很抱歉,编译不通过的。原因显而易见,比如:
代码如下 | 复制代码 |
NewCar car = new MyNewCar(); car.drive();// |
这这这,这车是我的啊,怎么还不让我开?对不起,你有证据么 -_-#