1. Bei Verwendung statischer Methoden können Sie nur auf statisch deklarierte Eigenschaften und Methoden zugreifen, auf nicht statisch deklarierte Eigenschaften und Methoden ist der Zugriff jedoch nicht möglich.
package com.jk.ref; class People{ String name; private static String country="中国"; public People(String name){ this.name=name; } public void tell(){ System.out.println("name:"+name+" "+"country:"+country); } /** * @return the country */ public static String getCountry() { return country; } /** * @param country the country to set */ public static void setCountry(String country) { People.country = country; } } public class StaticDemo01 { public static void main(String[] args) { // TODO Auto-generated method stub People.setCountry("shanghai"); People ps1=new People("zhangsan"); //People.country="上海"; ps1.tell(); People ps2=new People("lisi"); // ps2.country="上海"; ps2.tell(); People ps3=new People("wangwu"); // ps3.country="上海"; ps3.tell(); } }
2. Die übergeordnete Klassenreferenz kann nur die überschriebenen Methoden der übergeordneten und untergeordneten Klasse anpassen, die nicht überschrieben, sondern blockiert werden.
public class TestMain { public static void main(String[] args) { Super sup = new Sub(); //封装(向上造型) sup.m1(); //父类引用无法调子类未重写方法,输出mi in Super sup.m2();//调用子类方法m2,继承先构建父类方法,方法名相同覆盖(重写)方法,输出m2 in Sub Sub sub = (Sub)sup; //拆箱(向下造型) sub.m1(); //调用子类静态方法m1,先构建父类方法,方法名相同方法名相同遮蔽方法,输出m2 in Sub sub.m2();//调用子类方法m2,继承先构建父类方法,方法名相同覆盖(重写)方法,输出m2 in Sub } } class Super{ //父类 public static void m1() { //父类静态方法 System.out.println(“m1 in Super”); } public void m2() { //父类方法 System.out.println(“m2 in Super”); } } class Sub extends Super{ //子类 public static void m1() { //子类静态方法 System.out.println(“m1 in Sub”); } public void m2() { //子类方法 System.out.println(“m2 in Sub”); } }
Das obige ist der detaillierte Inhalt vonWas ist bei der Verwendung von Static in Java zu beachten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!