2012-08-25 50 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即可。