java踩坑
public class kk { public static void main(String[] args) { K k=new K(); k.ooo(); } }
import java.util.Observable; public class K extends Observable { public void init(){ this.setChanged(); } public static void main(String[] args) { Observable observable=new Observable(); observable.addObserver(new Oberver()); observable.hasChanged(); K k=new K(); k.ooo(); } protected void ooo(){ System.out.println("naosndoandoa"); } }
同一包下可以随意调用其他类protected的方法,不同包下只能随意调用public方法
静态方法不能用this
public class k { protected void ss(){ System.out.println("sss"); } }
import com.example.demo.k; public class dadad extends k { public void say(){ this.ss(); } public static void main(String[] args) { k k=new k(); dadad dadad=new dadad(); dadad.say(); //k中却没有ss()方法 } }
子类通过this调用父类方法,也可以通过super直接继承
import java.util.Observable; public class Obervable extends Observable { public void change(){ this.setChanged(); this.notifyObservers(); } public static void main(String[] args) { Observable observable=new Observable(); observable.addObserver(new Oberver()); Obervable obervable=new Obervable(); obervable.addObserver(new Oberver()); System.out.println(observable.countObservers()); obervable.change(); } }
import java.util.Observable; import java.util.Observer; public class Oberver implements Observer { @Override public void update(Observable o, Object arg) { System.out.println(o.hasChanged()); System.out.println("update"); } }
类的实例化对象不能直接调用protected方法
对象的组成部分包括:对象名,状态(属性),行为(操作)。类是对对象共有属性和行为的抽象,因此一个类定义的对象共享行为和属性。
类中不能直接实例化对象,要在方法中实例化

浙公网安备 33010602011771号