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(); }
静态方法不能重写
时间: 2024-11-03 00:32:00