本文主要记录在类方法中static关键字的运用
这里记录的只是现阶段我对于这个知识点的理解,随着后续了解的深入,可能会重新回来修改这篇文章
首先为了实验结果,我先创建了一个父类A,和子类B(继承父类A),并且这两个类中分别定义了非静态方法test() 与静态方法 test02()
在调用非静态方法时,由于非静态方法是随着对象的创建而生成,因此在调用方法时,具体实现看的是创建的是哪个对象
而静态方法是随着类的定义而出现,换句话说,在定义类的同时,静态方法也随之被定义了下来,关于静态的方法的调用,我们可以使用类名.方法()的形式直接来使用,这也是区别非静态方法一个很重要的特点。因此在调用静态方法的时候,具体结果看的是类的类型
package com.codeslogan.oop.demo3;
public class Application {
public static void main(String[] args) {
//非静态方法看右,决定调用
A a = new A();
A b = new B();
a.test();
b.test();
/*
A=>test()
B=>test()
*/
//静态方法看左,决定调用
// A a = new A();
// A b = new B();
// a.test02();
// b.test02();
/*
A=>test02()
A=>test02()
*/
}
}
package com.codeslogan.oop.demo3;
public class A {
public void test() {
System.out.println("A=>test()");
}
public static void test02() {
System.out.println("A=>test02()");
}
}
package com.codeslogan.oop.demo3;
public class B extends A{
@Override
public void test() {
System.out.println("B=>test()");
}
public static void test02() {
System.out.println("B=>test02()");
}
}