class Zoo
{
Animal getAnimal() //Animal是一个接口类型
{
return new Animal();
}
}
class Test
{
public static void main(String[] args)
{
Zoo z=new Zoo();
Animal an=z.getAnimal();//Animal是接口,那这句话是不是就不是实例化了呢?
}
}
这里面的getAnimal是非静态的方法,为什么可以在static main中初试化一个接口呢。
{
Animal getAnimal() //Animal是一个接口类型
{
return new Animal();
}
}
class Test
{
public static void main(String[] args)
{
Zoo z=new Zoo();
Animal an=z.getAnimal();//Animal是接口,那这句话是不是就不是实例化了呢?
}
}
这里面的getAnimal是非静态的方法,为什么可以在static main中初试化一个接口呢。
解决方案 »
- [Microsoft][SQLServer 2000 Driver for JDBC]Column index 6 is out of range.这是什么原因
- 对象池中对象的创建
- 带autoboxing 对象的比较问题!
- 想实现eclipse中代码自动修正(ctrl+I)的功能,感兴趣的朋友帮忙看下
- 大家帮下忙。。。看看计算器这样写为什么不能运行啊?
- 学习JAVA的烦恼
- Swing的简单问题,请大家帮我看看
- 什么地方有JAVA API 5.0中文版下载
- 这样的功能该怎样实现?? 分不够再加
- 大家帮我看看这个是什么问题
- 应用jtidy的问题,高手请进
- javacsript中如何测试本地文件的存在性
class Zoo
{
Animal getAnimal() //Animal是一个接口类型
{
return new Animal(); //-----------此语句可以通过?接口不可以
}
这段代码是摘出来的,我改的有点仓促
主要的问题是:在静态的main函数中使用了非静态的方法
想问问怎么回事
谢谢楼上几位
真是高手!
是用接口接受具体的实例,这个相当于
Person p = new Person("亚当","男");这里面的getAnimal是非静态的方法,为什么可以在static main中初试化一个接口呢。
-------
class A{
public void fun(){}
public static void main(String args[]){
fun();//这个才是在静态方法中调用非静态方法,你这个是一个具体的实例调用自己本身的方法
}
}
Animal 不可能是接口
return new Animal(); --如果是接口,这句就会报错Animal an=z.getAnimal(); 中getAnimal()确实是非静态方法,
但是他是被类Zoo初始化的对象z调用的,完全不会有问题