Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2010, 14:52   #11
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Не понял вашего ответа на последний мой пост.
Ксати в посдеднем коде, supper находится также вунтри конструктора-потомка, я имел ввиду, можно ли вызвать через super конструкто-родителя, только чтоб super находился не в конструкторе-потомка, у вас конструкторе находится, в конструкторе-потомка.

Последний раз редактировалось Syltan; 20.05.2010 в 15:03.
Syltan вне форума Ответить с цитированием
Старый 20.05.2010, 16:00   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Вот что я имел ввиду:
Код:
public class class1 {
  class1(){
	  System.out.print("yfdadyf");
  }
}
А вот так вызывается его конструктор
Код:
public class class2  {
	public static void main (String args[]) {
	  
	  new class1();
  }
}
Я это имел ввиду
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.05.2010, 16:21   #13
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Конечно возможно. Если взять мой пример, можно в функции main() написать:
Код:
A a = new A(1, 2);// При создании объекта вызывается конструктор класса А
profi вне форума Ответить с цитированием
Старый 20.05.2010, 16:55   #14
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

А точно забыл что при создании объекта вызывается коснтруктор.
А поповоду вызова конструктра, ещё так можно вызывать?
Код:
	  new class1();
вместо такого
Код:
A a = new A(1, 2);// При создании объекта вызывается конструктор класса А
Syltan вне форума Ответить с цитированием
Старый 20.05.2010, 16:55   #15
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

super должно находиться только в конструкторе потомка.

Цитата:
А поповоду вызова конструктра, ещё так можно вызывать?
Код:


new class1();

вместо такого
Можно, смотря какая ситуация. Но в твоем случае так не нужно делать, создав объект и не присвоить его ссылки.

Последний раз редактировалось profi; 20.05.2010 в 17:00.
profi вне форума Ответить с цитированием
Старый 20.05.2010, 17:14   #16
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

То есть super который находится в конструкторе-потомка, нужен для того чтоб, когда я создам объект потомка, передать значения от объекта потомка в конструктор потомка, от конструктора потомка передать значения в метод сапер, а методом сапер вызвать то, что я передал в конструктор-потомка, передав эти значения в конструктор-родителя и сразу вызвав конструктр-родителя?
Syltan вне форума Ответить с цитированием
Старый 20.05.2010, 19:06   #17
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Цитата:
Сообщение от Syltan Посмотреть сообщение
Из потомка можна вызвать конструктор класса-родителя. А как вызвать конструктор класса-родителя не из потомка, тоесть без ключевого слова super, такое возможно?
Придумайте пожалуйста хотя бы 1 ситуацию когда вам нужно управлять конструированием унаследованной частью объекта через конструктор класса-родителя вне конструктора класса-потомка.
Цитата:
Сообщение от Stilet Посмотреть сообщение
Дык это... <Имя класса>()...
По логике вроде так...
Это создание экземпляра класса <Имя класса>, потомки тут вообще будут не причем.

любой класс потомок, в любом конструкторе(в т.ч. конструкторе по умолчанию) вызывает parameter-less конструктор класса родителя если такой конструктор существует, либо другой, если он указан.

например, следущий код даст ошибку при компилировании Implicit super constructor A() is undefined. Must explicitly invoke another constructor:
Код:
class A{
    public A(int t){
    	
    }
}
class B extends A{
    public B(int f){
       
    }
}
а, этот код, скомпилируется без проблем:
Код:
class A{
    public A(int t){
    	
    }
}
class B extends A{
    public B(){
       super(0);
    }
}
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.

Последний раз редактировалось alexinspir; 20.05.2010 в 19:13.
alexinspir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно файл (слово) поместить в рамку из # в ассемблере o12345 Помощь студентам 0 22.12.2009 01:06
MSVC++: ключевое слово operator Пепел Феникса Общие вопросы C/C++ 2 20.10.2009 21:32
Саундтрек из Super Mario rpy3uH Свободное общение 1 03.07.2008 16:34
Нужно вывести на экран каждое слово на новой строке. Юлёк PHP 5 28.01.2008 14:57