1.静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法。
class Cat{ protected static String color ="random"; public void showCatColor(){ System.out.println("Cat : "+color); } public static void staticShowColor(){ System.out.println("Cat static : "+color); } } class WhiteCat extends Cat{ protected static String color ="white"; public void showCatColor(){ System.out.println("WhiteCat :"+color); } public static void staticShowColor(){ System.out.println("WhiteCat static :"+color); } }
2.测试
public static void main(String[] args) { // WhiteCat whiteCat = new WhiteCat(); // Cat cat = whiteCat; // cat.staticShowColor(); // cat.showCatColor(); /** * Cat static : random * WhiteCat :white */ // Cat cat = new WhiteCat(); // WhiteCat whiteCat = (WhiteCat)cat; //其实和上面的那段代码是相同的 // cat.staticShowColor(); //都是调用父类的静态方法,输出父类的静态变量 // cat.showCatColor(); /** * Cat static : random * WhiteCat :white */ // Cat cat = new Cat(); // WhiteCat whiteCat = cat; //cannot convert from Cat to WhiteCat // cat.staticShowColor(); // cat.showCatColor(); }