第一节 JAVA基础 OOP 重写与重载
Java基础学习,加固,回头看,温故而知新。
· | 重 载 | 重 写 | 对应类 |
---|---|---|---|
· | 重载是同一个类内,方法名称相同,而参数不同的方法实现 | 子类对父类非私有方法的重新实现 | ReloadOrOverride |
· | 重载方法入参不能相同 | 重写的子类方法必须与父类相同 | 方法例:partOne |
· | \ | 子类重写的方法返回值类型不能大于父类 | 方法例:partTwo |
· | \ | 子类重写的访问权限修饰符不能小于父类的方法 private>default>protected>public | 方法例:partTwo,父类为default,子类只能为 ‘defalut>protected>public’ 这三种修饰这 |
· | \ | 子类重写的方法抛出的异常类型不能大于父类 | 方法例:partFore |
代码如下(注解不规范,请勿效仿):
// 父类方法
public class ReloadOrOverrideParent {protected void partOne() {System.out.println(1);}Object partTwo() {System.out.println(1);return new Object();}private void partThree() {System.out.println("private");}public void partFore() throws RuntimeException {}
}
public class ReloadOrOverride extends ReloadOrOverrideParent {// 这是重写@Overridepublic void partOne() {System.out.println(2);}// 这是重写@Overridepublic String partTwo() {return (String) super.partTwo();}// 不能重写父类的私有方法
// @Override
// public void partThree() {
//
// }//@Override// public void partFore() throws Exception { // 这是错误的 不能thorws Exception// super.partFore();// }// AccessControlException 是 RuntimeException 子类就可以@Overridepublic void partFore() throws AccessControlException {super.partFore();}// 重载public void partOne(String s) {System.out.println(s);}// 重载public String partOne(String s,String s2) {System.out.println(s2);return s2;}public static void main(String[] args) {ReloadOrOverride o = new ReloadOrOverride();o.partOne("s", "2");}
对于Java使用中,重载和重写是经常用的特征方式。恰到好处的使用可以让自己的代码构成十分灵活以及提高自己的设计思路。
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★