2012-08-25 158 views
2

这是我尝试实现一个接口。Java实现接口

即时得到以下错误

javac MyCollection.java 
./au/edu/uow/Collection/DVDAlbum.java:6: cannot find symbol 
symbol: class Album 
public class DVDAlbum implements Album{ 

这是超类

package au.edu.uow.Collection; 


public interface Album { 

    String getMediaType(); 

    String getTitle(); 

    String getGenre(); 

} 

这是子类

public class DVDAlbum implements Album{ 

    private String Title; 
    private String Genre; 
    private String Director; 
    private String Plot; 
    private String MediaType; 

    public DVDAlbum(String TempTitle, String TempGenre, String TempDirector, String TempPlot){ 
     Title = TempTitle; 
     Genre = TempGenre; 
     Director = TempDirector; 
     Plot = TempPlot; 
    } 
    String getMediaType(){ 
     return MediaType; 
    } 
    String getTitle(){ 
     return Title; 
    } 
    String getGenre(){ 
     return Genre; 
    } 
} 

http://www.javabeginner.com/learn-java/java-abstract-class-and-interface 这是我使用的参考,但它不适合我。

+0

您是否正在导入界面? – Thor84no

+0

它们可能在单独的包中,所以你必须在包含DVDAlbum的文件中使用'import au.edu.uow.Collection.Album;'。顺便说一句,包名应该写成小写。 – toniedzwiedz

+0

检查你的主类MyCollection –

回答

2

如果你不是在接口声明的同一个包,你需要导入它:

import au.edu.uow.Collection.Album; 

或者使用完整的合格名称:

public class DVDAlbum implements au.edu.uow.Collection.Album{ } 
0

检查您的接口包是否正确导入。

+0

如果接口被称为Album.java将导入语句为Import Album.java ?? –

+0

现在你可以检查MyCollection java class –

+0

Album.java是文件名,而不是接口名。您不能在Java类名称中使用点。 – Heisenbug

0

添加以下

import au.edu.uow.Collection.Album; 

public class DVDAlbum implements Album{ 
    //.... 
} 

import au.edu.uow.Collection.DVDAlbum; 
import au.edu.uow.Collection.Album; 

public class MyCollection { 
    //.... 
} 
0

该错误消息

./au/edu/uow/Collection/DVDAlbum.java:6: cannot find symbol 

手段,即DVDAlbumAlbum旨在是在同一封装中,因此没有import是必要的。

但是:DVDAlbum不在正确的包中,因为package行缺失。因此,只需将package行从Album复制到DVDAlbum即可。