multiple herencia java string inheritance

herencia - Extender java.lang.String



polymorphism in java (4)

java.lang.String se declara como final, sin embargo, ¿hay algún mecanismo legítimo disponible para ampliarlo y reemplazar el método equals (String other)?


No absolutamente no. Si desea algún "otro" tipo de cadena, cree otro tipo que pueda contener una cadena:

public final class OtherString { private final String underlyingString; public OtherString(String underlyingString) { this.underlyingString = underlyingString; } // Override equals however you want here }


No es posible heredar directamente la clase String ya que es definitiva. También las clases de envoltura java.lang.Integer, java.lang.Float, etc ... son finales.


No puedes extender una clase que está marcada como final. Puede usar la composición para poner un objeto String dentro o puede rodar su propia versión. Esto se puede lograr a través de matrices de caracteres y la otra magia que se utiliza para crear clases de cuerdas.


Supongo que lo más cerca que puede venir es hacer alguna clase que implemente CharSequence . La mayoría de los métodos de manipulación de cadenas JDK aceptan un CharSequence. StringBuilder por ejemplo. Combinado con una buena implementación de toString (), los diversos métodos de String y valueOf (), puede acercarse bastante a un sustituto natural.