Понимание abstract\interface классов, помощь в их реализации
Всем здравствуйте
Я новачек и хочу более детально изучить Java, прочитал много статей насчёт abstract классов и interface, но мне сложно понять как их использовать и их суть.
Сейчас с пытаюсь сделать простенький плагин в котором мне нужно сделать 2 разных объекта в котором будут разные значения, типо этого -
public abstract class GuiItemType {
}
public class GuiItemSend extends GuiItemType {
private String server;
private String permission;
private Integer max;
public GuiItemSend(String server, String permission, Integer max){
this.server = server;
this.permission = permission;
this.max = max;
}
public String getPermission() {
return permission;
}
public Integer getMax() {
return max;
}
public String getServer() {
return server;
}
}
public class GuiItemCommand extends GuiItemType {
private List<String> cmds;
public GuiItemCommand(List<Strng> cmds) {
this.cmds = cmds;
}
public List<String> getCmds() {
return cmds;
}
}
И использовать их как-то так (замечу, я не знаю правильно ли вообще так делать, я хочу просто понять и получить советы как было бы лучше это сделать)
public class Example {
public createGUI(GuiItemType type){
if(type instanceof GUIItemCommand){
GuiItemCommand = (GuiItemCommand) type;
} else if(type instanceof GUIItemSend){
GuiItemSend = (GuiItemSend) type;
} else {
throw new Exception(///)
}
}
}