本文主要是介绍java面向对象.day22(继承03--方法重写),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
方法重载与方法重写的最大区别:
方法重载:是在同一个类里面方法名相同,可以参数不同,方法体不同。
方法重写:在继承关系中,父类必须有方法并且子类用不上或需要调整,方法重写必须在子类里面,方法名,参数相同,但方法体不同。
方法重写
-
修饰词不能是static
-
只能在继承关系中并且是在子类里才能重写
-
父类与子类方法名,参数类型,数量必须一样
-
重写的方法只有方法体与父类不同
-
重写方法的修饰符的范围只能扩大,不能缩小。(大)public>Protected>Default>private(小)
-
快捷键:alt + insert 后选override
为什么要重写
-
父类的功能对于子类来说不需要,或者过多,过少,所以需要重写
代码说明
未重写
//父类 public class B{public static void test(){System.out.println("B=>test()");} }
//子类 public class A extents B{//未重写public static void test(){System.out.println("A=>test()");} }
//未重写时使用 public class Application {public static void main(string[] args){//方法的调用只和左边,定义的数据类型有关A a = new A();a.test(); //A=>test()//父类的引用指向了子类B b = new A();b.test();//B=>test()} }
重写
//父类 public class B{public void test(){System.out.println("B=>test()");} }
//子类重写 public class A extents B{//重写后@Override//有功能的注解public void test(){System.out.println("A=>test()");} }
//重写时使用 public class Application {public static void main(string[] args){//方法的调用只和左边,定义的数据类型有关A a = new A();a.test(); //A=>test()//父类的引用指向了子类B b = new A();b.test();//A=>test()} }
这篇关于java面向对象.day22(继承03--方法重写)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!