初学Java,继承的一点儿小问题,请指点一下。(50分)

  • 主题发起人 主题发起人 视觉音乐
  • 开始时间 开始时间

视觉音乐

Unregistered / Unconfirmed
GUEST, unregistred user!
初学Java,继承的问题,请指点一下:
****************************************************
Book类:
package com.wrox.library;

public class Book
{
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Book(String title) {
this.title = title;
}
}
****************************************************
ChildrenBook类,从Book继承:
package com.wrox.library;
public class ChildrenBook extends Book
{
private int minimumAge;

public int getMinimumAge() {
return minimumAge;
}

public void setMinimumAge(int a) {
minimumAge = a;
}

public ChildrenBook(){
super();
}

public ChildrenBook(String title) {
super(title);
}
};
****************************************************
我用的是Jsp,两个类都放在WEB-INF/classes/com/wrox/library目录下,Book.java可以
编译通过。ChildrenBook.java编译时出错。错误提示在第一句:
public class ChildrenBook extends Book 的Book下面。

 
UP有分~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
怎么这么冷清啊
:(((((((((((((((((((
 
初学者,只有顶一下了。[:D]
 
多谢killerc兄!
:)
 
.................: class ChildrenBook is public, should be declared in a file named ChildrenBook.java
public class ChildrenBook extends Book
^
提示错误信息是这样的吗?
 
是这样的:
classes/com/wrox/library/childrenBook.java:3: cannot resolve symbol
symbol : class Book
location: class com.wrox.library.ChildrenBook
public class ChildrenBook extends Book
^
1 error
 
你的错误信息中有“classes/com/wrox/library/childrenBook.java ..”请注意类名与文件名的大小写问题(要一致)!
解决方法:
在ChildrenBook类中有如下代码:
public ChildrenBook(){
super();
}
作用是调用超类Book的无参数构造函数,但Book类中只一个含参数的函数。因此你应在Book加一个无参构造函数!
修改后的代码(注意类名与文件名的大小写问题):
Book.java
****************************************************
package com.wrox.library;

public class Book
{
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Book(String title) {
this.title = title;
}
//以下构造函数是新添加的,满足子类super()的要求
public Book(){
this.title=title;
}
}
****************************************************

ChildrenBook.java
****************************************************
package com.wrox.library;
public class ChildrenBook extends Book
{
private int minimumAge;

public int getMinimumAge() {
return minimumAge;
}

public void setMinimumAge(int a) {
minimumAge = a;
}

public ChildrenBook(){
super();
}

public ChildrenBook(String title) {
super(title);
}
}
****************************************************

 
你的类路径是怎么配置的?是不是
如:
Classpath=.;c:/WEB-INF/classes
只需编译器和解释器知道文件所在目录就可以了,他会根据包名在
该目录找到文件(首先在当前目录下查找,然后在C:/web-inf/classes下找)
还有是怎样执行编译的?
是否是
%javac web-inf/classes/com/wrox/library/ChildrenBook.java
按照如此配置,我试编译通过了,当然在Book类中要添加一个默认构造方法
如lql0459所言
 
老兄,好象应该将java程序放在class目录下面
 
多人接受答案了。
 

Similar threads

W
回复
5
查看
318
wait_for_love
W
H
回复
7
查看
482
hongfei
H
回复
8
查看
346
小猪
后退
顶部