Java &引用;类不是抽象的,并且不会重写类中的方法;错误,但我实现了这些方法

Java &引用;类不是抽象的,并且不会重写类中的方法;错误,但我实现了这些方法,java,interface,overriding,abstract-class,implements,Java,Interface,Overriding,Abstract Class,Implements,我知道有很多问题与Java中的这个编译器错误有关。 我必须编码一个简单的媒体播放器的行为,播放图像、音频文件和视频。我写了七个类,其中三个是接口。下面是一个示意图: AudioI包含与音量相关的方法:较弱、较大、getVolume和setVolume VideoI包含与亮度相关的方法:更亮、更暗、getBrightness和GetRightness MediaI包含媒体的一般方法:play、getTitle、setTitle、getDuration和setDuration 其他类别包括:

我知道有很多问题与Java中的这个编译器错误有关。 我必须编码一个简单的媒体播放器的行为,播放图像、音频文件和视频。我写了七个类,其中三个是接口。下面是一个示意图:

  • AudioI包含与音量相关的方法:较弱、较大、getVolume和setVolume
  • VideoI包含与亮度相关的方法:更亮、更暗、getBrightness和GetRightness
  • MediaI包含媒体的一般方法:play、getTitle、setTitle、getDuration和setDuration
其他类别包括:

  • 音频:实现AudioI、MediaI和扩展媒体
  • 图像:实现视频i、媒体i和扩展媒体
  • 视频:实现视频i、媒体i和扩展媒体
  • 媒体:实现音频、视频和媒体
  • InterfaceTest:我在这里测试方法和构造器
现在,我的问题是,尽管我认为我正确地实现了所有东西,但我在标题中得到了编译器错误。而且,每次我编译时,编译器只输出4个错误,与音频、图像、视频和媒体类相关。如果我删除随机接口中的一个签名,编译器将切换到另一个方法,并告诉我它的实现是错误的。即使我删除了除一个之外的所有方法签名,编译器也会输出关于该特定方法的错误

另外,我不知道这是否有用,我使用Java8,不使用IDE,我从Windows终端编译和运行文件

代码如下:

音频接口

public interface AudioI{
  public void louder();
  public void weaker();
  public int getVolume();
  public void setVolume();
}
public interface VideoI{
  public void brighter();
  public void darker();
  public int getBrightness();
  public void setBrightness();
}
public interface MediaI{
  public void play();
  public int getDuration();
  public void setDuration();
  public String getTitle();
  public void setTitle();
}
视频接口

public interface AudioI{
  public void louder();
  public void weaker();
  public int getVolume();
  public void setVolume();
}
public interface VideoI{
  public void brighter();
  public void darker();
  public int getBrightness();
  public void setBrightness();
}
public interface MediaI{
  public void play();
  public int getDuration();
  public void setDuration();
  public String getTitle();
  public void setTitle();
}
媒体接口

public interface AudioI{
  public void louder();
  public void weaker();
  public int getVolume();
  public void setVolume();
}
public interface VideoI{
  public void brighter();
  public void darker();
  public int getBrightness();
  public void setBrightness();
}
public interface MediaI{
  public void play();
  public int getDuration();
  public void setDuration();
  public String getTitle();
  public void setTitle();
}
音频类

public class Audio extends Media implements AudioI, MediaI{
  private int volume;
  private int duration;
  private String title;

  /**
    CONSTRUCTORS
  **/
  Audio(){
    this.title = "audio.mp3";
    this.duration = 100;
    this.volume = 5;
  };

  Audio(String title, int duration){
    this.title = title;
    this.duration = duration;
    this.volume = 5;
  };

  /**
    AUDIOI METHODS IMPLEMENTATION
  **/
  public void louder(){
    if(this.volume < 10){
        this.volume++;
    }else{
        System.out.print("Maximum volume reached");
    }
  };

  public void weaker(){
    if(this.volume > 0){
        this.volume--;
    }else{
        System.out.print("Minimum volume reached");
    }
  };

  public int getVolume(){
    return this.volume;
  };

  public void setVolume(int volume){
    if(volume > 9){
        System.out.println("******************************");
        System.out.println("* ERROR: maximum volume is 9 *");
        System.out.println("******************************");
    }else if(volume < 0){
        System.out.println("******************************");
        System.out.println("* ERROR: minimum volume is 0 *");
        System.out.println("******************************");
    }else{
        this.volume = volume;
    }
  };

  /**
    MEDIAI METHODS IMPLEMENTATION
  **/
  public void play(){
    int i;

    System.out.println("TITLE: " + this.title);

    System.out.print("VOLUME: >");
    for(i = 0; i < this.volume; i++){
        System.out.print(")");
    }
    System.out.println("");
  };

  public int getDuration(){
    return this.duration;
  };

  public void setDuration(int duration){
    this.duration = duration;
  };

  public String getTitle(){
    return this.title;
  };

  public void setTitle(String title){
    this.title = title;
  };
}
公共类音频扩展媒体实现AudioI,MediaI{
私人国际卷;
私有整数持续时间;
私有字符串标题;
/**
建设者
**/
音频(){
this.title=“audio.mp3”;
这个时间=100;
这个体积=5;
};
音频(字符串标题,整数持续时间){
this.title=标题;
这个。持续时间=持续时间;
这个体积=5;
};
/**
音频方法实现
**/
公共空间更大(){
如果(该体积小于10){
这个.volume++;
}否则{
系统输出打印(“达到最大容量”);
}
};
公共图书馆{
如果(此卷>0){
本卷——;
}否则{
系统输出打印(“达到最小体积”);
}
};
public int getVolume(){
返回此.volume;
};
公共void setVolume(int volume){
如果(卷>9){
System.out.println(“****************************************”);
System.out.println(“*错误:最大音量为9*”);
System.out.println(“****************************************”);
}否则如果(音量<0){
System.out.println(“****************************************”);
System.out.println(“*错误:最小卷为0*”);
System.out.println(“****************************************”);
}否则{
这个。体积=体积;
}
};
/**
媒体方法实现
**/
公共游戏{
int i;
System.out.println(“TITLE:+this.TITLE”);
系统输出打印(“卷:>”;
对于(i=0;i
图像类

public class Image extends Media implements VideoI, MediaI{
  private String title;
  private int brightness;
  private int duration = 1;

  /**
    CONSTRUCTORS
  **/
  Image(){
    this.title = "img.jpeg";
    this.brightness = 5;
  };

  Image(String title){
    this.title = title;
    this.brightness = 5;
    this.duration = 1;
  };

  /**
    AUDIOI METHODS IMPLEMENTATION
  **/
  public void brighter(){
    if(this.brightness < 10){
        this.brightness++;
    }else{
        System.out.print("Maximum brightness reached.");
    }
  };

  public void darker(){
    if(this.brightness > 0){
        this.brightness--;
    }else{
        System.out.print("Minimum brightness reached.");
    }
  };

  public int getBrightness(){
    return this.brightness;
  };

  public void setBrightness(int brightness){
    if(brightness > 10){
        System.out.println("* ERROR: maximum brightness is 10 *");
    }else if(brightness < 1){
        System.out.println("* ERROR: minimum brightness is 1 *");
    }else{
        this.brightness = brightness;
    }
  };

  /**
    MEDIAI METHODS IMPLEMENTATION
  **/
  public void play(){
    int i;

    System.out.println("TITOLO: " + this.title);

    System.out.print("LUMINOSITA': >");
    for(i = 0; i < this.brightness; i++){
        System.out.print("*");
    }
    System.out.println("");
  };

  public int getDuration(){
    return this.duration;
  };

  public void setDuration(int duration){
    System.out.println("ERROR: cannot set image duration");
  };

  public String getTitle(){
    return this.title;
  };

  public void setTitle(String title){
    this.title = title;
  };
}
公共类图像扩展媒体实现VideoI,MediaI{
私有字符串标题;
亮度;
私有整数持续时间=1;
/**
建设者
**/
图像(){
this.title=“img.jpeg”;
这个亮度=5;
};
图像(字符串标题){
this.title=标题;
这个亮度=5;
这1.duration=1;
};
/**
音频方法实现
**/
公众假期{
如果(此亮度小于10){
这个.亮度++;
}否则{
系统输出打印(“达到最大亮度”);
}
};
公共空间较暗(){
如果(此亮度>0){
这是“亮度”——;
}否则{
系统输出打印(“达到最小亮度”);
}
};
public int getBrightness(){
返回此项。亮度;
};
公共亮度(整数亮度){
如果(亮度>10){
System.out.println(“*错误:最大亮度为10*”);
}否则如果(亮度<1){
System.out.println(“*错误:最小亮度为1*”);
}否则{
这个。亮度=亮度;
}
};
/**
媒体方法实现
**/
公共游戏{
int i;
System.out.println(“TITOLO:+this.title”);
系统输出打印(“亮度”:>”;
对于(i=0;i
视频课

import java.util.ArrayList;

public class Video extends Media implements VideoI, MediaI{
  private int duration;
  private String title;
  private int brightness;
  private Image buff;
  ArrayList<Image> images = new ArrayList<Image>();

  /**
    CONSTRUCTORS
  **/
  Video(){
    for(int i = 0; i < 100; i++){
        images.add(new Image("img" + i + ".jpeg"));
    }
    this.brightness = 5;
    this.duration = 100;
    this.title = "slideshow.mkv";
  };

  Video(String title, int nOfImages){
    for(int i = 0; i < nOfImages; i++){
        buff = new Image("img" + i + ".jpeg");
        this.images.add(buff);
    }
    this.brightness = this.images.get(0).getBrightness();
    this.duration = nOfImages;
    this.title = title;
  };

  /**
    VIDEOI METHODS IMPLEMENTATION
  **/
  public void brighter(){
    int i;

    if(this.brightness < 10){
        this.brightness++;

        for(i = 0; i < this.images.size(); i++){
            this.images.get(i).setBrightness(this.brightness);
        }
    }else{
        System.out.print("Maximum brightness reached.");
    }
  };

  public void darker(){
    int i;

    if(this.brightness > 0){
        this.brightness--;

        for(i = 0; i < this.images.size(); i++){
            this.images.get(i).setBrightness(this.brightness);
        }
    }else{
        System.out.print("Minimum brightness reached.");
    }
  };

  public int getBrightness(){
    return this.brightness;
  };

  public void setBrightness(int brightness){
    if(brightness < 0){
        System.out.println("**********************************");
        System.out.println("* ERROR: minimum brightness is 0 *");
        System.out.println("**********************************");
    }else if(brightness > 10){
        System.out.println("***********************************");
        System.out.println("* ERROR: maximum brightness is 10 *");
        System.out.println("***********************************");
    }else{
        for(int i = 0; i < this.images.size(); i++){
            this.images.get(i).setBrightness(brightness);
            this.brightness = brightness;
        }
    }
  };

  /**
    MEDIAI METHODS IMPLEMENTATION
  **/
  public void play(){
    int i;

    System.out.println("TITOLO: " + this.title);

    System.out.print("LUMINOSITA': >");
    for(i = 0; i < this.brightness; i++){
        System.out.print("*");
    }
    System.out.println("");


    System.out.print("DURATA VIDEO: ");
    for(i = 0; i < this.images.size(); i = i + 10){
        System.out.print("[] ");
    }
    System.out.println("");
  };

  public int getDuration(){
    this.duration = this.images.size();
    return this.duration;
  };

  public void setDuration(int duration){
    System.out.println("ERROR: cannot set video duration");
  };

  public String getTitle(){
    return this.title;
  };

  public void setTitle(String title){
    this.title = title;
  };
}
import java.util.ArrayList;
公共类视频扩展媒体实现视频i,媒体i{
私有整数持续时间;
私有字符串标题;
亮度;
私人图像buff;
ArrayList images=新的ArrayList();
/**
建设者
**/
视频(){
对于(int i=0;i<100;i++){
添加(新图像(“img”+i+”.jpeg”);
}
这个亮度=5;
这个时间=100;
this.title=“slideshow.mkv”;
};
视频(字符串标题、整数图像){
对于(int i=0;i