ab problem java,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,请各位看看要怎么改,接口和类之间要怎么调用?问题可能很白痴,各位见笑了。

b829963380d658234a82a0737201a59c.png

写法是没什么太大问题的,只是这样你没有使用接口而已。如果使用多态这样比较好

Animal?animal = new Tiger();

报错感觉是没有编译

b829963380d658234a82a0737201a59c.png

Unresolved compilation problems: 没有编译的问题!

b829963380d658234a82a0737201a59c.png

引用 1 楼 abstruct 的回复:

写法是没什么太大问题的,只是这样你没有使用接口而已。如果使用多态这样比较好

Animal animal = new Tiger();

报错感觉是没有编译

+1 Unresolved compilation problems:没有编译!

is undefined for the type 没找到类型

b829963380d658234a82a0737201a59c.png

引用 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)

b829963380d658234a82a0737201a59c.png

代码没问题,我试了,正常运行

不知道你这是啥原因

7c8003838ad3b03b1cc736f534a35664.png

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类里的方法,都没有写小括号!

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

b829963380d658234a82a0737201a59c.png

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

b829963380d658234a82a0737201a59c.png

怎么会有人说测试过了。。。

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”);     } }

这些方法都没括号。。。

b829963380d658234a82a0737201a59c.png

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

b829963380d658234a82a0737201a59c.png

引用 6 楼 coder_dai 的回复:

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

Animal animal = new Tiger();

报错感觉是没有编译

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

Exce……

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

b829963380d658234a82a0737201a59c.png

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

多细心,多写。

b829963380d658234a82a0737201a59c.png

引用 11 楼 JavaAlpha 的回复:

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

多细心,多写。

b829963380d658234a82a0737201a59c.png

引用 7 楼 july0302 的回复:

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

我是用IDE编译的

b829963380d658234a82a0737201a59c.png

引用 11 楼 JavaAlpha 的回复:

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

多细心,多写。

多谢支持

b829963380d658234a82a0737201a59c.png

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

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

Animal cannot be resolved to a type

at Tiger.(Tiger.java:2)

at test.main(test.java:4)

b829963380d658234a82a0737201a59c.png

这个就没用到接口的概念呀

b829963380d658234a82a0737201a59c.png

引用 15 楼 woaili0319 的回复:

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

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

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

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

b829963380d658234a82a0737201a59c.png

引用 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的内容拷贝进去就运行成功了。不知道为什么?

b829963380d658234a82a0737201a59c.png

引用 9 楼 lgk56 的回复:

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

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

b829963380d658234a82a0737201a59c.png

引用 14 楼 woaili0319 的回复:

引用 11 楼 JavaAlpha 的回复:

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

多细心,多写。多谢支持

客气了。

b829963380d658234a82a0737201a59c.png

引用 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的作用域是同一个包中。能理解不。

b829963380d658234a82a0737201a59c.png

引用 6 楼 coder_dai 的回复:

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

Animal animal = new Tiger();

报错感觉是没有编译

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

Exce……

这眼神好。。

b829963380d658234a82a0737201a59c.png

楼主用的什么IDE啊

b829963380d658234a82a0737201a59c.png

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

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

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

b829963380d658234a82a0737201a59c.png

引用 24 楼 woaili0319 的回复:

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

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

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

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

b829963380d658234a82a0737201a59c.png

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

7c8003838ad3b03b1cc736f534a35664.png

10分

引用 19 楼 woaili0319 的回复:

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

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

b829963380d658234a82a0737201a59c.png

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

b829963380d658234a82a0737201a59c.png

引用 25 楼 coder_dai 的回复:

引用 24 楼 woaili0319 的回复:[quote大哥,java默认的作用域自古以来就是friendly,从来没有默认为public的说法。。。

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

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

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

b829963380d658234a82a0737201a59c.png

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

b829963380d658234a82a0737201a59c.png

引用 31 楼 woaili0319 的回复:

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

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

b829963380d658234a82a0737201a59c.png

同新手,多学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值