这个方法返回的是一个Iterator类型的。方法的返回值可以是任意类型。
方法没有接口只说。你理解错了。
方法没有接口只说。你理解错了。
解决方案 »
- java强制类型转换的时候JVM是如何工作的?
- 想写一个将双声道的 wav 转成 单声道的 wav,生成的却是噪音,不知哪里错了。
- 请教有关图像的问题!icon.getIcon().getScaledInstance(参数)
- 求java sasl使用例子和教程
- IdentifierGenerationException: this id generator generates long, integer, short
- Proxool 在C\S下怎么配置?
- 关于String中equals()与==的问题,请帮忙
- button的大小可以自己控制吗?
- java的签名
- 为什么要动态装载类,什么时候用?既然已经知道类名称,为何不直接生成对象?
- 一个面试题,该怎么做
- 关于类的实例化和指针的一个问题
例如
class A{}
class B extends A{}A a = new B();
上述语句是没问题的,而如果有一个方法如下
A fun()
{
return B;
}
也是可以的,这就是多态的一个应用了。而把具体的类换成接口也行的通,这样子的话,B就是一个具体实现类或者子接口了。
java 5之前很多集合类的方法返回的是Object对象(针对JDK1.5之前的集合类,1.5由于有了泛型,好像这种方法比较少了)。就是因为Object对象是所有类的祖先类,所以如果返回值类型是Object的话,return任何对象都是正确的,就可以保证集合类对于任意类型的对象都可以正确返回。不过你拿什么去引用这个对象就是另外一回事了。
而面向接口编程我也不懂,至今了解的皮毛就是,给你一个接口,而我返回的具体实现类是什么你就不用管。只管用接口就行,感觉就是接口的对接吧。菜鸟理解不当请指出= =
也就是用父类引用去引用子类对象(父类类型 父类引用 = new 子类对象)
向下转型就是反过来 B b;
A a = new A();
b = (B)a;
简单点说就像基本数据的转型是一个道理。
如 double a = 5;
int b = (int)6.5;
不过对象的向下转型出错的错误比较大- -
怎么说呢 其实不太确切,你应该知道,子类是可以向上转型为父类,因此传递给父类的消息子类是都可以接受的,接口和其实现类有点这样的关系,当然还是有不同。
当我们返回一个接口类型时,其实就是意味着,以后你完全可以把其返回值赋给一个实现了此接口的实现类的实例。这样编写的好处是,此接口的实现类的实例在运行时可以任意灵活指定,而不需要修改接口函数的代码。
public interface UserDao
{
...
}
public class UserDaoImpl implements UserDao
{
...
}class example{
public UserDao handle(UserDao userdao)
{
// 业务处理
return userdao;
}public static void main(String args[])
{
UserDaoImpl impl_one = new UserDaoImpl();
UserDaoImpl impl_two = getUserDao(impl_one); //此处impl_two得到的是处理后的impl_one
}
}
比如 接口 名字=new 实现了该接口的类();或者 接口 方法名{....... return 实现了该接口的类的一个对象} 是吗?