高手帮忙解决下:
我分别声明两个类:
第一个类在包food下,第二个类没有包,为什么在导入的时候报找不到Fruit错???package food;public abstract class Fruit
{
abstract void kk();
}//该类为默认包
import food.*;class Apple extends Fruit
{
void kk()
{
}
}
我分别声明两个类:
第一个类在包food下,第二个类没有包,为什么在导入的时候报找不到Fruit错???package food;public abstract class Fruit
{
abstract void kk();
}//该类为默认包
import food.*;class Apple extends Fruit
{
void kk()
{
}
}
楼主【zhaibing】截止到2008-07-06 23:08:39的历史汇总数据(不包括此帖):
发帖的总数量:9 发帖的总分数:340
结贴的总数量:4 结贴的总分数:160
无满意结贴数:0 无满意结贴分:0
未结的帖子数:5 未结的总分数:180
结贴的百分比:44.44 % 结分的百分比:47.06 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主该结一些帖子了
另一个错误就是导入的时候用import food.Fruit,而不能用import food.*,为什么?????
高手帮忙解决一下,谢谢!!!!
这句话前面加public
如果不写public,则默认是package访问级别,两个类不是一个包中的,所以不能重写kk()方法,你Apple中的kk方法是新定义的而不是重写的,因为继承了一个抽象类却没有实现抽象类的方法,所以无法通过编译。
和
import food.*;
是等价的,不知道你那报什么错误。是不是别的错误导致的。
abstract void kk(); 没有加权限访问修饰符,默认为包访问权限,而这两个类又不在同一个包下编译就会报错啊,告诉你 Apple 必须实现 抽象方法,而这个抽象发放又是不可见的
public abstract void kk();
或
protected abstract void kk();Apple 在实现该方法时 访问修饰符的范围要大于等于super class的方法访问权限
{
public abstract void kk();
}
import food.Fruit;class Apple extends Fruit
{
public void kk()
{
}
}这样能编译,但是就是import food.*;不行
import food.*;和import food.Fruit;的区别!
import food.*;
导入 food包下的所有类import food.Fruit
只导入 food下的Fruit类
导入 food包下的所有类import food.Fruit
只导入 food下的Fruit类
D:\练习\TT.java:3: 无法访问 Fruit
错误的类文件: D:\练习\Fruit.java
文件不包含类 Fruit
请删除该文件或确保该文件位于正确的类路径子目录中。
class Apple extends Fruit
http://www.sunxin.org/sunxin/005.asp
是jdk查找路径的问题。
自己用jdk的话会有很多奇怪的问题。
用ide来开发就不会遇到这样的问题。