深圳多语言网站建设,给公司做网站,Wordpress翻译自定义链接,深圳最新出行政策1.概述方法的重写#xff08;override#xff09;是封装的特性之一。在子类中可以根据需要对基类中继承来的方法进行重写。重载和重写没有任何关系。作用#xff1a;通过重写#xff0c;子类既可以继承父类的东西#xff0c;又可以灵活的扩充。1.override注解是告诉编译器…1.概述方法的重写override是封装的特性之一。在子类中可以根据需要对基类中继承来的方法进行重写。重载和重写没有任何关系。作用通过重写子类既可以继承父类的东西又可以灵活的扩充。1.override注解是告诉编译器下面的方法是重写父类的方法2.编译器可以给你验证Override下面的方法名是否是你父类中所有的如果没有则报错。例如你如果没写Override而你下面的方法名又写错了这时你的编译器是可以编译通过的因为编译器以为这个方法是你的子类中自己增加的方法。3.如果不写override注解去直接重写方法编译器是不会判断你是不是正确重写了父类中的方法的。如重写方法时参数与父类不同程序是不会提示报错的。这会留下一个潜在的bug。当你写了override注解时程序会判断你是否正确的重写了父类的对应方法。而且加上此注解后程序会自动屏蔽父类的方法。2.特点在子类中可以根据需要对基类中继承来的方法进行重写。重写方法必须和被重写方法具有相同方法名称、参数列表和返回值类型。重写方法不能使用比被重写方法更严格的访问权限。由于多态3.实例说明代码如下public class Animal {String name;void eat() {System.out.println(have a good dinner);}public static void main(String[] args) {Birds b new Birds();b.eat();}
}class Birds extends Animal {Overridevoid eat() {super.eat(); // 调用父类的方法System.out.println(----------------------------------------); // 分隔线System.out.println(jiujiujiu);}void fly() {System.out.println(Yeah,I can fly~~);}
}代码说明鸟类Birds在eat的时候需要输出jiujiujiu。可通过重写父类Animal中的eat()方法实现。通过Bird实例调用eat()方法时是调用重写后的方法。之前的父类的方法呢其实还存在可以在子类中通过super进行调用。运行结果have a good dinner
----------------------------------------
jiujiujiu