-
需要有继承关系,子类重写父类的方法,重写都是方法的重写,和属性无关。方法名,参数列表必须相同,方法体不同。
-
静态方法和非静态方法区别很大,重写只和非静态方法有关。
-
重写修饰符:范围可以扩大,不可以缩小,子类的范围比父类大。(比如父类是protected ,子类可以是public,protected,不能是private)
-
抛出异常:范围可以被缩小,但不能被扩大
1、为什么需要重写
- 父类功能,子类不一定需要或者不一定满足!
- Alt + Insert;override;
2、静态方法和非静态区别
- 静态方法
父类B
public class B {
public static void test()
{
System.out.println("B的test");
}
}
子类A
public class A extends B {
public static void test()
{
System.out.println("A的test");
}
}
测试类Application
public class Application {
public static void main(String[] args) {
//方法调用只和左边,定义的数据类型有关。
A a = new A();
a.test();//A
//父类的引用指向子类
B b = new A();
b.test();//B
}
}

- 非静态方法
父类B
public class B {
public void test()
{
System.out.println("B的test");
}
}
子类A
public class A extends B {
public void test()
{
System.out.println("A的test");
}
}
测试类Application
public class Application {
public static void main(String[] args) {
//方法调用只和左边,定义的数据类型有关。
A a = new A();
a.test();//A
//父类的引用指向子类
B b = new A();//子类重写父类的方法。
b.test();//B
}
}

问题:为什么用 B b = new B ();得出的结果是

本文介绍了Java中方法重写的概念,强调了重写只适用于非静态方法,并通过实例展示了静态方法与非静态方法的区别。重写允许子类根据需要扩展或修改父类的功能。在方法重写时,子类的方法范围可以扩大,但不能缩小,异常可以被缩小而不能扩大。文章还探讨了为何需要重写以及如何在代码中实现重写。

748

被折叠的 条评论
为什么被折叠?



