Der Compiler lässt eine statische Methode keine nicht statische Methode aufrufen. Ich verstehe, dass dies der Fall ist, weil eine nicht statische Methode normalerweise eine Instanzvariable verwendet.Ist es sinnvoll, eine nicht statische Methode zu verwenden, die keine Instanzvariable verwendet?
Aber macht es Sinn, eine nicht statische Methode zu haben, die keine Instanzvariable verwendet. Wenn wir ein Verhalten haben, das den Zustand der Instanz nicht beeinflusst oder nicht beeinflusst, sollte eine solche Methode nicht als statisch markiert werden.
Das Argument API ist hier der wichtigste Punkt. Eine 'statische' Methode kann keine Methoden von geerbten Schnittstellen implementieren. Eine "statische" Methode unterliegt keiner Polymorphie. "Statische" Methoden sind in der Tat sehr begrenzt hinsichtlich ihrer Fähigkeiten. –
@BoristheSpider Natürlich ist das sowohl ein Segen als auch ein Fluch. Viele funktionale Sprachen bauen stark auf "statischen" Funktionen auf - grundsätzlich ist alles, was nicht explizit an eine Instanz gebunden sein muss (z. B. polymorphe Schnittstellenimplementierungen), eher statisch. In gewisser Weise ist es eine Rückkehr zu den C-Tagen der alten Schule, aber es ist ziemlich erfrischend. Da funktionale Programmierung dazu tendiert, die Zusammensetzung eher über die Vererbung zu bevorzugen, ist dies durchaus sinnvoll. – Luaan