Pour le super();, tu peux ignorer ça pour l'instant (dans ce cas précis, ça sert à rien du tout, j'ai généré le constructeur automatiquement
)
Mais sinon ça sert à appeler le constructeur d'une classe parente (par exemple si une classe Monstre étend Personnage ici, super(vie) dans monstre appellera le constructeur de personnage, qui dans ce cas définie la vie
Personnage cible c'est un objet de type Personnage (pour info ici on est dans la classe Personnage. Si dans ton main tu crées deux personnages comme Personnage hero = new Personnage(5); et Personnage monstre = new Personnage(5); et qu'ensuite tu veux que hero attaque monstre, tu n'auras qu'à appeler hero.attaque(5, monstre) pour qu'il inflige 5 de dégats au monstre 