Так это то, что я заметил в Java:Есть ли способ «сократить» объект Java до унаследованного класса?
Если я сделать класс:
class IntStorage
{
public int i;
public void setInt(int i) { this.i = i; }
public int getInt() { return i; }
}
и наследуют его, и хранить другие данные:
class IntAndStringStorage : IntStorage
{
public String s;
public void setString(String s) { this.s = s; }
public String getString() { return s; }
}
И я делаю это:
IntAndStringStorage IandSstorage = new IntAndStringStorage();
IandSstorage.setString("Test");
IntStorage Istorage = (IntStorage)IandSstorage;
IntAndStorageStorage test = (IntAndStorageStorage)Istorage;
System.out.println(test.getString());
Это вполне допустимо, хотя я передал его в унаследованный класс. Теперь я предполагаю, что информация все еще находится внутри объекта, поэтому я могу полностью передать ее унаследованному классу, не сохраняя старую информацию? Я не хочу, чтобы String хранения осталось в моем int класс хранения. Надеюсь, я поставил свой вопрос достаточно ясно! Заранее спасибо!
'class IntAndStringStorage: IntStorage' Является ли это обозначением Java 8? Он не компилируется здесь. –
hmmm просто ищет небольшое разъяснение, это означает, что когда вы бросаете объект, вы храните тот же объект? Также синтаксис наследования выглядит подозрительно, как C#. – Nomad101
@ Nomad101 Я имею в виду, что объект все тот же объект. Он просто «замаскирован» как другой тип объекта. – user2348979