Code Bye

java接口怎么使用 Unresolved compilation problems

 

//Animal.java定义interface

public interface Animal {
	int BIG_TYPE=5;
	void sleep();
	void eat();
	void breath();
}

//Tiger.java实现接口的方法

public class Tiger implements Animal
{
	public void sleep{
		System.out.println("the tiger sleep");
	}
	public void eat{
		System.out.println("the tiger eat");
	}
	public void breath{
		System.out.println("the tiger breath");
	}
}

//测试类test.java

public class test {
	public static void main(String[] args){
		Tiger tiger=new Tiger();
		tiger.sleep();
		tiger.eat();
		tiger.breath();
	}
}

运行test.java出现错误
Exception in thread “main” java.lang.Error: Unresolved compilation problems: 
The method sleep() is undefined for the type Tiger
The method eat() is undefined for the type Tiger
The method breath() is undefined for the type Tiger

at test.main(test.java:5)

初学java,请各位看看要怎么改,接口和类之间要怎么调用?问题可能很白痴,各位见笑了。

写法是没什么太大问题的,只是这样你没有使用接口而已。如果使用多态这样比较好
Animal?animal = new Tiger();

报错感觉是没有编译

Unresolved compilation problems: 没有编译的问题!
引用 1 楼 abstruct 的回复:

写法是没什么太大问题的,只是这样你没有使用接口而已。如果使用多态这样比较好
Animal animal = new Tiger();

报错感觉是没有编译

+1 Unresolved compilation problems:没有编译!

is undefined for the type 没找到类型

引用 1 楼 abstruct 的回复:

写法是没什么太大问题的,只是这样你没有使用接口而已。如果使用多态这样比较好
Animal animal = new Tiger();

报错感觉是没有编译

为啥没有编译啊?有什么错吗?Animal animal = new Tiger();具体怎么使用,还是报错啊?
Exception in thread “main” java.lang.Error: Unresolved compilation problems: 
Animal cannot be resolved to a type
tiger cannot be resolved
tiger cannot be resolved
tiger cannot be resolved

at test.main(test.java:5)

代码没问题,我试了,正常运行
不知道你这是啥原因

30分
引用 4 楼 woaili0319 的回复:

引用 1 楼 abstruct 的回复:写法是没什么太大问题的,只是这样你没有使用接口而已。如果使用多态这样比较好
Animal animal = new Tiger();

报错感觉是没有编译

为啥没有编译啊?有什么错吗?Animal animal = new Tiger();具体怎么使用,还是报错啊?
Exception in thread “main”……

lz你这问题我真是无力吐槽了。。。
你仔细看看你tiger类的方法,都没有写小括号!

引用 4 楼 woaili0319 的回复:

引用 1 楼 abstruct 的回复:写法是没什么太大问题的,只是这样你没有使用接口而已。如果使用多态这样比较好
Animal animal = new Tiger();

报错感觉是没有编译

为啥没有编译啊?有什么错吗?Animal animal = new Tiger();具体怎么使用,还是报错啊?
Exception in thread “main”……

楼上都什么眼神。。。楼主,我也是无力吐槽了。。。
你仔细看看你的tiger类里的方法,都没有写小括号!

其他都是正确的,实验过了。

你是用IDE编写的代码吗?如果没用,可能是你接口和实现类没有编译好。。。
怎么会有人说测试过了。。。
public class Tiger implements Animal {     
public void sleep(){         System.out.println(“the tiger sleep”);     }     
public void eat(){         System.out.println(“the tiger eat”);     }     
public void breath(){         System.out.println(“the tiger breath”);     } } 
 这些方法都没括号。。。
这样new实现类,接口就没用了,接口已经实现了,直接调用接口就可以了。
引用 6 楼 coder_dai 的回复:

引用 4 楼 woaili0319 的回复:引用 1 楼 abstruct 的回复:写法是没什么太大问题的,只是这样你没有使用接口而已。如果使用多态这样比较好
Animal animal = new Tiger();

报错感觉是没有编译

为啥没有编译啊?有什么错吗?Animal animal = new Tiger();具体怎么使用,还是报错啊?
Exce……

哈哈,是大家把问题想得太复杂了,我刚看书学习,没注意到,多谢提醒!

刚开始学,出错时好事,多出错,才可以多收获。

多细心,多写。

引用 11 楼 JavaAlpha 的回复:

刚开始学,出错时好事,多出错,才可以多收获。

多细心,多写。

引用 7 楼 july0302 的回复:

你是用IDE编写的代码吗?如果没用,可能是你接口和实现类没有编译好。。。

我是用IDE编译的

引用 11 楼 JavaAlpha 的回复:

刚开始学,出错时好事,多出错,才可以多收获。

多细心,多写。

多谢支持

各位,已经加上括号了,但是还是出现问题。
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Animal cannot be resolved to a type

	at Tiger.<init>(Tiger.java:2)
	at test.main(test.java:4)
这个就没用到接口的概念呀
引用 15 楼 woaili0319 的回复:

各位,已经加上括号了,但是还是出现问题。

Plain Text code?12345Exception in thread “main” java.lang.Error: Unresolved compilation problem:     Animal cannot be resolved to a type     at Tiger.<init>(Tiger.……

和一楼说的没关系的,就算你写成Tiger tiger=new Tiger();也没问题,对的。

把你接口的方法前加上public。

引用 17 楼 coder_dai 的回复:

引用 15 楼 woaili0319 的回复:各位,已经加上括号了,但是还是出现问题。

Plain Text code?12345Exception in thread “main” java.lang.Error: Unresolved compilation problem:     Animal cannot be resolved to a type    ……

接口中的方法默认被定义为public吧,不需要显示添加。问题在于,Animal.java是Interface,现在新建个Class,把Animal.java的内容拷贝进去就运行成功了。不知道为什么?

引用 9 楼 lgk56 的回复:

这样new实现类,接口就没用了,接口已经实现了,直接调用接口就可以了。

接口只是定义了框架,具体实现不是需要类来完成吗?刚学,不了解。

引用 14 楼 woaili0319 的回复:

引用 11 楼 JavaAlpha 的回复:
刚开始学,出错时好事,多出错,才可以多收获。

多细心,多写。多谢支持

客气了。

引用 18 楼 woaili0319 的回复:

引用 17 楼 coder_dai 的回复:引用 15 楼 woaili0319 的回复:各位,已经加上括号了,但是还是出现问题。

Plain Text code?12345Exception in thread “main” java.lang.Error: Unresolved compilation problem:     Animal cannot be ……

大哥,java默认的作用域自古以来就是friendly,从来没有默认为public的说法。。。

你重新建的接口是不是放在和tiger.java一个包内了?因为friendly的作用域是同一个包中。能理解不。

引用 6 楼 coder_dai 的回复:

引用 4 楼 woaili0319 的回复:引用 1 楼 abstruct 的回复:写法是没什么太大问题的,只是这样你没有使用接口而已。如果使用多态这样比较好
Animal animal = new Tiger();

报错感觉是没有编译

为啥没有编译啊?有什么错吗?Animal animal = new Tiger();具体怎么使用,还是报错啊?
Exce……

这眼神好。。

楼主用的什么IDE啊
[quote大哥,java默认的作用域自古以来就是friendly,从来没有默认为public的说法。。。
 
你重新建的接口是不是放在和tiger.java一个包内了?因为friendly的作用域是同一个包中。能理解不。 ]

我建的接口Interface是和tiger.java在一个包内啊。既然friendly的作用域是同一个包中,我新建的接口Interface Animal.java,实现类Tiger.java,还有测试类Test.java都在同一个包中,为什么运行失败呢?而我新建一个Class,把接口Animal.java的内容拷进去就能运行成功呢?我还是不理解,抱歉。

引用 24 楼 woaili0319 的回复:

[quote大哥,java默认的作用域自古以来就是friendly,从来没有默认为public的说法。。。
 
你重新建的接口是不是放在和tiger.java一个包内了?因为friendly的作用域是同一个包中。能理解不。 ]

我建的接口Interface是和tiger.java在一个包内啊。既然friendly的作用域是同一个包中,我新建的接口……

你说的这种情况不太可能吧。。。复制个新接口就搞定了?你仔细对比下,肯定有区别的,如果看不出来,贴出来我帮你看看。

语法都错了,实现方法没有括号,你是用文本写的吗?最好用ide写。

10分
引用 19 楼 woaili0319 的回复:

引用 9 楼 lgk56 的回复:这样new实现类,接口就没用了,接口已经实现了,直接调用接口就可以了。接口只是定义了框架,具体实现不是需要类来完成吗?刚学,不了解。

你定义了接口,然后实现类实现它,那接口就已经被实现了,就可以用了,就这么简单。

没有什么问题,会不会是路径下有重名的.class.检查下,有木有其他程序之前也使用过animal的类。针对eclipse这些集成环境,其他无视~
引用 25 楼 coder_dai 的回复:

引用 24 楼 woaili0319 的回复:[quote大哥,java默认的作用域自古以来就是friendly,从来没有默认为public的说法。。。
 
你重新建的接口是不是放在和tiger.java一个包内了?因为friendly的作用域是同一个包中。能理解不。 ]
我建的接口Interface是和tiger.java在一个包内啊。既然friendly的作用域……

我重新建了一个Interface,拷贝进去,又可以了。不知道咋回事。多谢啊!

感谢各位的热心帮助,学到不少东西。
引用 31 楼 woaili0319 的回复:

感谢各位的热心帮助,学到不少东西。

虽然解决了皆大欢喜,但还是觉得事情听蹊跷的。。。本来坏的东西,重写一遍就好了!编译器什么时候变这么先进了- -~泼了点冷水不好意思哈

同新手,多学习

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明java接口怎么使用 Unresolved compilation problems