了解方法重写的时候,我们先了解静态方法和非静态方法的使用与区别
首先我们创建 A,B两个类,并使用extends继承方法
定义一个test()方法,并打印一段话
public class A extends B{
//继承
//静态方法
public static void test(){
System.out.println("A>=test()");
}
public class B {
public static void test(){
System.out.println("B>=test()");
}
验证输出结果
A a =new A(); a.test();
打印的是Class A的本类方法test()
B b = new A(); b.test();
虽然,如上图所示,Application上B 调用的是 new A()方法,表达即是 b 是new A() 出来的对象,因此调用了A的方法。
但
从结果看
当存在 static (静态) 的时候,b 调用了 B类的方法 因为 b 是用 B类定义的
//静态方法的调用只和左边的定义的数据类型有关下面
使用 非静态方法
Class A
public void test() {
//非静态方法
System.out.println("A>=test()");
}
Class B
public void test(){
System.out.println("B>=test()");
}
打印输出结果
结果很明显,与静态方法不同
静态方法调用的是B 类的方法
而非静态的方法调用的是 对象 的方法,对象自然是 A,所以调用的是 new A();
方法重写就是这样一个过程。
方法重写的规则方法重写:
需要有继承关系,子类重写父类的方法
1.方法名必须相同啊
2.参数列表必须相同
3.修饰符: 范围:可以扩大但不能缩小:
public>Protected>Default>private
4.抛出的异常: 范围:可以被缩小但不能扩大
ClassNotFoundException
方法重写的意义:
因为程序平时的编写和工作中,有时父类的方法子类不一定需要,或者子类不一定满足,为了减少不必要的麻烦。
快捷键 :alt +insert ctrl +o
总结Java的学习还是任重道远啊---



