Moje myślenie jest w obszarze Javy i C#. Jak wiemy, w obu stringi są klasami finalnymi i formalnie nie podlegają dziedziczeniu.
Jak myśleć o takich bytach, które są nadal stringiem/Stringiem ale prezentują inne funkcjonalności.
na przykład taki hipotetyczny kod:
class Pesel : String {
}
Czy jest Peselem? owszem, jest. a czy jest Stringiem? tak
co jest jakościowo różne od uprawianej kompozycji
class Pesel {
String pesel;
}
czy to samo
class Email : String {
}
vs
class Email {
string email;
}
czyli dalej jest kompatybilna w kontekstach, gdzie jest oczekiwany string, ale jest zarazem czymś jakościowo innym.
Co myślicie?