在多态中,静态成员函数的特点:
无论编译和运行,都参考左边。
{综合理解:多态中,静态成员函数静态方法区中,而在静态方法区中只有类名的引用,就相当于类名点方法。一调用这个方法就绑定了这个方法的所属的类了。而非静态区中有this引用和super引用。如果当fu f = new zi()此时这个父类的引用f指向了子类对象,那么调用方法的是时候f.method()方法的时候就相当于new zi().method()。所以运行是的子类对象的方法。}
接口引用型变量指向自己的子类对象。这也是多态的表现!
interface MachineSlot{
public void commectTV();
public void runGame();
}
class GameMachine{
public void Machine(){
System.out.println("Machine run");
}
public void UseMachineSlot(MachineSlot m){//这里就相当于是 MachineSlot m = new GameCard();接口类型指向了自己的子类对象
if(m!=null){
m.commectTV();
m.runGame();
}
}
}
class GameCard implements MachineSlot{
public void runGame(){
System.out.println("DNF Run");
}
@Override
public void commectTV() {
// TODO Auto-generated method stub
System.out.println("电视连接成功");
}
}
public class DuotaiCase {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
GameMachine gm = new GameMachine();
gm.Machine();
gm.UseMachineSlot(null);
gm.UseMachineSlot(new GameCard());
}