重写
-
重写:重写需要有继承关系,子类重写父类的方法!
1、方法名必须相同
2、参数列表必须相同
3、修饰符:范围可以扩大
public > Protected > Default > private
4、抛出的异常:范围可以被缩小,但不能扩大
ClassNotFoundException ---> Exception(大)
5、注意:重写,子类的方法和父类必须一致,方法体不同!
-
注意:
重写,子类的方法和父类必须一致,方法体不同!
快捷键:Alt + Insert 选择 override
为什么需要重写:父类的功能,子类不一定需要,或者不一定满足
-
静态的方法和非静态的方法区别很大
静态方法:方法的调用只和左边(定义的数据类型)有关
非静态方法:重写
关键字:Override 重写 ——> 子类重写父类的方法
-
实例:
package oop.demo8; /** * 重写:重写需要有继承关系,子类重写父类的方法! * 1.方法名必须相同 * 2.参数列表必须相同 * 3.修饰符:范围可以扩大 * public > Protected > Default > private * 4.抛出的异常:范围可以被缩小,但不能扩大 * ClassNotFoundException ---> Exception(大) * 注意:重写,子类的方法和父类必须一致,方法体不同! * 快捷键:Alt + Insert 选择override * 为什么需要重写: * 父类的功能,子类不一定需要,或者不一定满足 */ 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方法 System.out.println("------ 分隔符 ------"); A a2 = new A(); a2.test2(); //调用A类test2方法 //父类的引用指向了子类 B b2 = new A(); //子类重写了父类的方法 b2.test2(); //调用B类的test2方法 } }
父类
-
初识:
父类:
重写都是方法的重写,和属性无关
-
示例:
-
实例:
package oop.demo8; /** * 父类 * 重写都是方法的重写,和属性无关 */ public class B { public static void test(){ System.out.println("B=>test()"); } public void test2(){ System.out.println("B=>test()"); } }
子类:extends关键字继承父类
-
初识:
子类:
子类继承父类
-
示例:
-
实例:
package oop.demo8; /** * 子类 * 继承 */ public class A extends B { public static void test(){ System.out.println("A=>test()"); } /** * Override重写 * 子类重写父类的方法 */ @Override public void test2() { System.out.println("A=>test()"); } }