abstract class PrintMedia extends Media {
PrintMedia(){
super(title);
}
void viewMedia(){
System.out.println("Read by scanning print and images.");
}
}
没有abstract方法。
PrintMedia(){
super(title);
}
void viewMedia(){
System.out.println("Read by scanning print and images.");
}
}
没有abstract方法。
既然你是abstract class 就必须有个abstract method。。
不是吗??
abstract class PrintMedia extends Media {
PrintMedia(){
super(title); //这里的title从何而来?父类没有空构造函数的
}
void viewMedia(){
System.out.println("Read by scanning print and images.");
}
}
我在PrintMedia这个类里只是想调用父类的构造函数啊,没有继承它的意思
那么如果那句不对,该怎么实现在子类里调用父类的构造函数呢?
super(title); //这里的title从何而来?父类没有空构造函数的
}
改成
PrintMedia(){
super(title); //这里的title从何而来?父类没有空构造函数的
}
super(title); //这里的title从何而来?父类没有空构造函数的
}改成
PrintMedia(String title){
super(title); //这里的title从何而来?父类没有空构造函数的
}
private String title;
Media (String title){
this.title = title;
}
String getTitle(){
return title;
}
abstract void viewMedia();
}
abstract class PrintMedia extends Media { /* 该函数的内部调用使用的title 凭空产生. 错!!
PrintMedia(){
super(title);
}
*/ PrintMedia(String title){
super(title);
} void viewMedia(){
System.out.println("Read by scanning print and images.");
}
}
class Book extends PrintMedia {
Book(String title){
super(title);
}
}
class Magazine extends PrintMedia {
Magazine (String title){
super(title);
}
}
class CDROM extends Media {
CDROM(String title){
super(title);
}
void viewMedia(){
System.out.println("Listen to music.");
}
}
class MediaManager {
public static void main(String [] args){
Media[] m = {
new Book ("Java 2 by example"),
new Magazine ("JavaWorld"),
new CDROM("Music CD")
};
for (int i = 0; i<m.length; i++){
System.out.println(m[i].getTitle ());
m[ i].viewMedia ();
}
}
}//END
但abstract class 并不要求一定得有 abstract member method