добавь поля всех типов private. public и тд public class RadioStationDemo {
public static void main(String[] args) {
Genre genreVideo = new Genre("MACAN - TSM", "Rap", 3, 5, (short) 40);
Bid bid = new Bid("FRIENDLY THUG 52 NGG - AMMO", "Underground rap", "Street racing", 32, (short) 35);


    System.out.println("Video Name: " + genreVideo.getName());
    System.out.println("Genre: " + genreVideo.getGenre());
    System.out.println("Time: " + genreVideo.getTime() + " min");
    System.out.println("View Count: " + genreVideo.getViewCount());
    System.out.println("Rating: " + genreVideo.getRating());

    System.out.println("Bid Name: " + bid.getBidName());
    System.out.println("Bid Video Name: " + bid.getName());
    System.out.println("Bid Genre: " + bid.getGenre());
    System.out.println("Bid View Count: " + bid.getViewCount());
    System.out.println("Bid Rating: " + bid.getRating());

    genreVideo.setTime(2);
    bid.setBidName("Overnight in St. Petersburg");

    System.out.println("Updated Genre Time: " + genreVideo.getTime() + " min");
    System.out.println("Updated Bid Name: " + bid.getBidName());
}
}
import java.util.Objects;

class Video {
private String name;
private String genre;
private long viewCount;
private short rating;


public Video(String name, String genre, long viewCount, short rating) {
    this.name = name;
    this.genre = genre;
    this.viewCount = viewCount;
    this.rating = rating;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getGenre() {
    return genre;
}

public void setGenre(String genre) {
    this.genre = genre;
}

public long getViewCount() {
    return viewCount;
}

public void setViewCount(long viewCount) {
    this.viewCount = viewCount;
}

public short getRating() {
    return rating;
}

public void setRating(short rating) {
    this.rating = rating;
}
// метод equals проверяет, ссылаются ли оба объекта на один и тот же экземпляр
// если нет, то проверяет равенство полей объекта
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Video)) return false;
Video video = (Video) o;
return viewCount == video.viewCount &&
rating == video.rating &&
Objects.equals(name, video.name) &&
Objects.equals(genre, video.genre);
}
@Override
public int hashCode() {
return Objects.hash(name, genre, viewCount, rating);
}
}import java.util.Objects;

class Genre extends Video {
private int time;


public Genre(String name, String genre, int time, long viewCount, short rating) {
    super(name, genre, viewCount, rating);
    this.time = time;
}

public int getTime() {
    return time;
}

public void setTime(int time) {
    this.time = time;
}
//методы equals и hashCode включают в себя time в сравнения
@Override
public boolean equals(Object o) {
if (!super.equals(o)) return false;
Genre genre = (Genre) o;
return time == genre.time;
}


@Override
public int hashCode() {
    return Objects.hash(super.hashCode(), time);
}
}
import java.util.Objects;

class Bid extends Video {
private String bidName;


public Bid(String name, String genre, String bidName, long viewCount, short rating) {
    super(name, genre, viewCount, rating);
    this.bidName = bidName;
}

public String getBidName() {
    return bidName;
}

public void setBidName(String bidName) {
    this.bidName = bidName;
}

//методы equals и hashCode включают в себя bidName в проверки равенства
@Override
public boolean equals(Object o) {
    if (!super.equals(o)) return false;
    Bid bid = (Bid) o;
    return Objects.equals(bidName, bid.bidName);
}

@Override
public int hashCode() {
    return Objects.hash(super.hashCode(), bidName);
}