Как наследовать конструктора от суперкласса до sub класса?
Конструкторы по умолчанию - общедоступные конструкторы без аргументов (объявленных или подразумеваемых) - по умолчанию наследуются. В качестве примера вы можете попробовать следующий код:
public class CtorTest {
public static void main(String[] args) {
final Sub sub = new Sub();
System.err.println("Finished.");
}
private static class Base {
public Base() {
System.err.println("In Base ctor");
}
}
private static class Sub extends Base {
public Sub() {
System.err.println("In Sub ctor");
}
}
}
Если вы хотите явно вызвать конструктор из суперкласса, вам нужно сделать что-то вроде этого:
public class Ctor2Test {
public static void main(String[] args) {
final Sub sub = new Sub();
System.err.println("Finished.");
}
private static class Base {
public Base() {
System.err.println("In Base ctor");
}
public Base(final String toPrint) {
System.err.println("In Base ctor. To Print: " + toPrint);
}
}
private static class Sub extends Base {
public Sub() {
super("Hello World!");
System.err.println("In Sub ctor");
}
}
}
Единственное предостережение: вызов super () должен прийти в качестве первой строки вашего конструктора, иначе компилятор рассердится на вас.
Вы вызываете функцию getDirs
непосредственно при вызове метода bind
, вы должны делать это только в том случае, если эта функция возвращает другую функцию, но я думаю, что это не так.
Change:
$('#chdir select').bind('change', getDirs());
To:
$('#chdir select').bind('change', getDirs);
Или если используется jQuery 1,4 +, можно связать событие change
с методом live
только один раз, и после этого не нужно будет повторно связывать событие:
$(document).ready(function () {
$('#chdir select').live('change', getDirs);
});
-121--4631627- конструкторы не наследуются, необходимо создать новый,
Вот пример того, как это работает:
class Foo {
Foo(String str) { }
}
class Bar extends Foo {
Bar(String str) {
// Here I am explicitly calling the superclass
// constructor - since constructors are not inherited
// you must chain them like this.
super(str);
}
}
-121--1258136- Прочитайте о супер-ключевом слове (Прокрутите вниз конструкторы подкласса). Если я понимаю ваш вопрос, вы, вероятно, хотите вызвать конструктор суперкласса?
Стоит отметить, что компилятор Java будет автоматически помещать в суперкласс вызов конструктора no-arg, если вы явно не вызываете конструктор суперкласса.
Zend Рамки сместился с быть относительно доступной и простой системы на более сложный объект. Она прошла через ряд быстрых событий за последние пару лет, которые оставили много старой документации вокруг.
У нас есть проекты, которые застряли на версии 1.7.x, потому что различия между этой и последней версиями слишком велики, что делает разработку и тестирование слишком дорогими.
Мне нравится Zend Framework, потому что он имеет так много глубины для него, но это определенно двухконечный меч для начинающих.
Я, конечно, рекомендую использовать опыт других пользователей и искать некоторые простые примеры структуры. ZF является очень адаптируемым, но Вам нужно постараться работать на простейшем примере.
Я думаю, что Мэтью Вейер о'Финни (поиск «Phly, boy, phly») является одним из наиболее доступных членов команды разработчиков и имеет множество примеров и идей на своем сайте.
Удачи!
-121--4649740-Если появляется терминал, перенаправьте stdout процесса.
-121--4109544-Скажем, если у вас есть
/**
*
*/
public KKSSocket(final KKSApp app, final String name) {
this.app = app;
this.name = name;
...
}
, то подкласс с именем KKSDPSocket, расширяющий KKSSocket, мог бы иметь:
/**
* @param app
* @param path
* @param remoteAddr
*/
public KKSUDPSocket(KKSApp app, String path, KKSAddress remoteAddr) {
super(app, path, remoteAddr);
}
и
/**
* @param app
* @param path
*/
public KKSUDPSocket(KKSApp app, String path) {
super(app, path);
}
Вы просто передаете аргументы вверх по цепочке конструкторов, как вызовы методов суперклассам, но с помощью суперкласса (...), который ссылается на конструктор суперкласса и проходит в заданных аргументах.
Конструкторы не наследуются, вы должны создать новый, идентично прототипированный конструктор в подклассе, который сопоставляется с соответствующим конструктором в суперклассе.
Вот пример того, как это работает:
class Foo {
Foo(String str) { }
}
class Bar extends Foo {
Bar(String str) {
// Here I am explicitly calling the superclass
// constructor - since constructors are not inherited
// you must chain them like this.
super(str);
}
}