基本概念:
重写也叫作覆盖,就是当子类的成员与父类的成员的名字相同的时候,从父类继承下来的成员会重新定义!
此时,通过子类的对象访问的时候,真正起作用的是子类中定义的成员!
如果必须要执行被重新的父类方法,必须在子类的方法中,显式的调用父类的同名方法!
语法形式为:
在子类的方法中执行:
父类名::父类中的方法名(这里的父类名可以用parent来代替)
几点注意:
1、parent不一定就代表本类的上一级父类,如果父类中没有找到相应的方法,会继续的向更上一级的父类查找!
2、当子类重写父类的方法的时候,方法的参数形式(个数),必须与父类保持一致(构造方法除外)
访问控制修饰符(public、protect、private)的使用原则:
1、从形式上看,子类可以继承父类的私有成员,但是却无法使用!
2、当子类重写父类的成员时,子类成员的访问控制权限不应该低于父类的访问控制权限!
3、私有成员(私有属性和私有方法)都不能被重写,但是子类还是可以定义跟父类私有成员同名的成员,但是此时,只是当作子类自身的新的成员而已!
4、虽然父类的私有方法不能被重写,但是,如果子类重新定义了一个同名的方法的时候,方法参数的形式(参数的个数)还是需要和父类保持一致!