Soll ich markieren Sie alle Methoden virtuell?

In Java können Sie mark-Methode als final zu machen unmöglich zu überschreiben.

In C# haben, um eine Methode als virtuell zu machen möglich zu überschreiben.

Heißt es, dass in C# markieren Sie alle Methoden, die virtuelle (außer ein paar diejenigen, die Sie wollen nicht überschrieben werden), da die meisten wahrscheinlich, dass Sie nicht wissen, auf welche Weise Sie Ihre Klasse kann geerbt werden?

  • Ich mag zu denken, dass in C#, wenn Sie etwas tun, das fühlt sich anspruchsvoll, du machst es falsch.
  • Das Gegenteil ist wahr: viele Java-gurus beraten, dass alle Methoden final standardmäßig.
  • Jon Skeet auf die Erbschaftssteuer obwohl, das war fast sieben Jahre alt und Meinungen ändern.
  • Zitat/Quelle bitte!
  • Wenn ich ein handy hätte ich es gepostet. Jedoch, Joshua Bloch hat immer wieder geraten, und ich bin mir ziemlich sicher, Effektiv Java erwähnt es irgendwo.
  • Sie Fehler final-Felder w - / final-Methoden.
  • Nein, ich definitiv nicht. Final Felder sind völlig unabhängig.
  • Ich verstehe, Sie erkennen den Unterschied zwischen Ihnen. Doch, was Herr Bloch berät, ist die Verwendung von "final" Felder. Er berät für Komposition und statische Fabriken, aber nicht für final Klassen/Methoden
  • Vergessen Sie final Felder, ich weiß, dass er spricht über Sie. Aber ich denke, er spricht auch über endgültige Methoden in effiziente Java. Aber ich kann misremember diese. Ich bin mir aber sicher, dass er erwähnte es an anderer Stelle dann – vielleicht in einem seiner Vorträge.
  • Recht. Ich hatte das Buch vor mir, wenn ich schrieb den Kommentar; es gibt fast keine final-Methoden gibt es, auch weniger endgültige Klassen - ThreadLocal gezeigt final, während in Wirklichkeit es nicht ist. Einige werden verwendet, um zu zeigen, dass auch final nicht helfen, Unveränderlichkeit (berüchtigten j.u.Datum), einige final als "schrecklich Kandidat für die standardmäßige serialisierte form" - StringList und so weiter.Keine Klasse in der collection framework ist endgültig, entweder.Zugegeben, ich bin kein großer fan von ihm, ich habe nicht gefolgt, seinen Gesprächen, aber es sei denn, Sie haben eine Quelle für Java-guru Befürwortung von "final Methoden standardmäßig" würde ich nicht akzeptieren.
  • Ich bin überrascht von Ihrer Stimmung. Warum sollte Java-gurus im Allgemeinen nicht umarmen diese Ansicht? Es ist sicherlich die vorherrschende Stimmung bei .NET Programmierer (wenn Eric unten ist nicht genug für Sie, Suche nach Jon Skeet Blick auf die Sache), warum sollten die, die sich für Java?
  • lassen Sie uns weiter, diese Diskussion im chat

Schreibe einen Kommentar