Particularly, where it defines what an abstract method is.
An abstract method is a method that is declared without an implementation (without braces, and followed by a semicolon). . .
Then compare that definition to how you have coded your method. You'll notice that you cannot declare a method "abstract" while also defining the method body. So either get rid of the "abstract" and the semicolon, or get rid of the brackets and the return picture.
Yeah, because when you extend a class, there is an implicit call to super(). What super() does is it calls the default constructor (the one with no arguments) from the super class. You're getting an error because your class Appliance has no default constructor, so either add a default constructor, or use (this is an example) super(true, new ImageIcon());
(the reason for this is because you have to create everything that your superclass, Appliance, has in it. So the compiler automatically calls super(), which calls your default constructor, to do this. But since you don't have a default constructor, you either have to write one, or call your other constructor, which is super(true, new ImageIcon());
Basically put the call to super(parameters for one of your Appliance class's constructors go here) as the first statement in all of the constructors for any class that extends Appliance. Either that or make a default constructor for the Appliance class.