代码如下:public class InterfaceTest { public User Haha() {
User dd = new UserInfo();
return dd;
} public static void main(String[] args) {
InterfaceTest ff = new InterfaceTest();
System.out.print(ff.Haha().getUserID());
}
}class UserInfo implements User { public long getUserID() {
return 1;
} public boolean isGuest() {
return false;
}
}interface User { public long getUserID(); public boolean isGuest();}User 是个接口 我这样就是User dd = new UserInfo(); 生成个User的实例,那我这样UserInfo dd = new UserInfo(); 和刚刚那样有什么去区别呢?
User dd = new UserInfo();
return dd;
} public static void main(String[] args) {
InterfaceTest ff = new InterfaceTest();
System.out.print(ff.Haha().getUserID());
}
}class UserInfo implements User { public long getUserID() {
return 1;
} public boolean isGuest() {
return false;
}
}interface User { public long getUserID(); public boolean isGuest();}User 是个接口 我这样就是User dd = new UserInfo(); 生成个User的实例,那我这样UserInfo dd = new UserInfo(); 和刚刚那样有什么去区别呢?
一般都认为User dd = new UserInfo(); 更好些,
提得多的是List list = new ArrayList()比ArrayList list = new ArrayList()更好
两个一样的。举个例子,有一个类,A,有构造函数A(User user),那么,你在实际应用中,既可以是A(new UserInfo()),也可以是A(new AnotherSubClass()),(AnotherSubClass也是User的子类),可以看出以接口名为参数类型的构造函数可以接受更多的具体子类,而不仅仅局限于某子类面向接口编程
接口一样,但是代码实现不同。这就是多态的体现。这样写比较好,易于代码重用。
如:User dd = new UserInfo();
这样当然也可以UserInfo dd = new UserInfo(); 但如果你又有一个类实现了User接口,如class OtherInfo implements User
在InterfaceTest 的Haha方法就可以用统一的接口User返回不同的对象,对外封装了。