给你个简单点的代码 执行下就知道了 这是JAVA典型的多态特性 public interface A {
}public class B implements A { String name ;
public B(String name){ this.name=name; }
public void setName(String name){ this.name=name; }
public String getName(){ return this.name; } }public class C {
public String getName(A b){ return ((B) b).getName(); } } public class Test { public static void main(String[] args){ B b = new B("zhangsan "); C c = new C(); String name = c.getName(b); System.out.print(name); } } 你分别建ABC三个类 用test测试下接口A中并没有get方法哦
接口变量只能调用在接口中声明过的方法,getXXX()并没在Serializable接口中声明,请问Serializable变量怎么调得倒user对象中的getXXX()方法.
public interface A {
}public class B implements A {
String name ;
public B(String name){
this.name=name;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
}public class C {
public String getName(A b){
return ((B) b).getName();
}
}
public class Test {
public static void main(String[] args){
B b = new B("zhangsan ");
C c = new C();
String name = c.getName(b);
System.out.print(name);
}
}
你分别建ABC三个类 用test测试下接口A中并没有get方法哦
User的get方法相当于猫的抓老鼠方法 或者狗的狗抓老鼠的方法 子类继承或者实现一个类 只是把父类的方法继承下来护着实现了接口的方法 子类自己可以有自己的独特的方法啊 不一定要跟父类或者接口一抹一样。 大哥 好好体会多态的用法
在我的程序中,虽然是传User对象user给Serializable变量u;但用u.getClass()即可运行时得倒对象user;u.getClass()还可有其它很多方法,如getMethods等取得user中的方法了.很感谢上面这位大哥.........