Toon posts:

[java] OO vraag...

Pagina: 1
Acties:

Verwijderd

Topicstarter
stel ik heb:

public abstract class MyAbstractClass {
public abstract void action();
public void finalize() {
System.out.println("finalize() of MyAbstractClass");
}
}

pubic class MyClass extends MyClass {
public void action() {
System.out.println("Action!");
}

// dit wil ik voorkomen!
public void finalize() {
System.out.println("finalize() of MyClass");
}
}

Zoals je ziet heb ik 2 klassen waarvan MyAbstractClass abstract is. MyClass erft van MyAbstract de methode finalize() en kan deze ook gebruiken. Wat ik niet wil is dat de programmeur deze methode kan herdefinieeren... (Wat dus wel gebeurt in het stukje voorbeeld code). Hoe kan ik dat veranderen zodat de compiler de herdefinitie van finalize() in MyClass als fout ziet?

Bedankt!

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Volgens mij kon je dat doen met
code:
1
public final void finalize() { .. }

Weet et niet zeker hoor, ik ga niet zo vaak naar java :)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
dat kan toch met final? dus
code:
1
public final void finalize()

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
idd, standaard zijn methoden in Java virtual.... dus final gebruiken als je dit niet wilt.

In C# zijn methoden trouwens standaard final... Gevolg: veel programmeurs maken uit principe alles virtual...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Jrz
  • Registratie: Mei 2000
  • Laatst online: 02:58

Jrz

––––––––––––

pubic class MyClass extends MyClass
dat moet volgens mij MyAbstractClass zijn, maar ok

final zoek je.

Ennnnnnnnnn laat losssssssss.... https://github.com/jrz/container-shell (instant container met chroot op current directory)


Verwijderd

Topicstarter
Tuurlijk!
Het werkt... Ik dacht alleen ff dat het niet werkte omdat de compiler het pas als fout ziet op het moment dat je er een object van maakt...

Dus pas wanneer je dit toevoegt geeft de compiler melding...

public static void main(String args[]) {
MyClass bla = new MyClass();
}
Pagina: 1