2022.3.15 方法重写
方法重写只和非静态方法有关,静态方法在类加载的时候就出来了
方法重写不能是private
方法重写需要有继承关系,子类重写父类的方法(重写方法,不是属性)
-
方法名必须相同
-
参数列表必须相同
-
修饰符:范围可以扩大但是不能缩小(子类可以比父类大),public>Protected>Default>private
-
抛出的异常:范围可以缩小,但不能扩大(子类可以比父类小)ClassNotFoundException<Exception
类中方法带static
1 package com.oop.demo07; 2 3 public class B { 4 public static void test() { 5 System.out.println("B=>test()"); 6 } 7 }
1 package com.oop.demo07; 2 //重写都是方法的重写,与属性无关 3 public class A extends B{ 4 5 public static void test() { 6 System.out.println("A=>test()"); 7 } 8 }
1 2 package com.oop; 3 4 import com.oop.demo07.A; 5 import com.oop.demo07.B; 6 7 public class Application { 8 public static void main(String[] args) { 9 //静态方法:方法的调用只和左边定义的数据类型有关 10 //数据类型 数据名 = 值; 11 A a = new A(); 12 a.test();//A=>test() 13 14 15 //父类的引用(b)指向子类 16 B b = new A();· 17 b.test();//B=>test() 18 } 19 20 }
1 package com.oop.demo07; 2 3 public class B { 4 5 public void test() { 6 System.out.println("B=>test()"); 7 } 8 }
1 package com.oop.demo07; 2 //重写都是方法的重写,与属性无关 3 public class A extends B{ 4 //Override重写 5 @Override //注解:有功能的注解 6 public void test() { 7 System.out.println("A=>test()"); 8 } 9 }
1 package com.oop; 2 3 import com.oop.demo07.A; 4 import com.oop.demo07.B; 5 6 //一个项目应该只存在一个main()方法 7 public class Application { 8 public static void main(String[] args) { 9 A a = new A(); 10 a.test();//A=>test() 11 12 13 //父类的引用(b)指向子类 14 B b = new A();//子类重写了父类的方法 15 b.test();//A=>test() 16 } 17 18 }

浙公网安备 33010602011771号