Апплеты - это устаревшая устаревшая технология, и вы должны рассмотреть новые технологии, такие как Java Web Start .Тем не менее, ваше понимание в основном правильно, за исключением некоторых терминов.
Я создаю класс имени aClass, который наследует (потому что он становится дочерним) методы и атрибуты класса Applet;
Расширение класса означает, что вы создаете новый подкласс (в данном случае aClass
), который основан на публичном контракте и частной реализации суперкласса (Applet
).То, как ведет себя aClass
, должно соответствовать принципу подстановки Лискова *1013* на высоком уровне, означающем, что везде, где вы можете использовать Applet
, вы также должны иметь возможность использовать aClass
.Это означает соблюдение государственного контракта Applet
в aClass
.
класса Applet;затем переписывает метод рисования (который был унаследован от Applet),
Частично правильно.aClass
будет переопределять paint
, означая, что он будет вызываться при вызове paint
в экземпляре aClass
, а не в определении по умолчанию в Applet
.Он не перезаписывает 1032 *, так как все еще можно вызвать реализацию этого метода super
.Вы также должны аннотировать переопределенный метод с помощью @Override
аннотации
@Override
public void paint(Graphics g){
// calls paint from higher up the inheritance tree
super.paint(g);
g.drawRect(0, 0, 400, 200);
}
, этот метод ожидает объект в качестве параметра (который мы назовем именем g), созданный из класса Graphics,
Да, или как aClass
extends Applet
, это может быть некоторый класс, который также расширяет Graphics
.
, например, class FooGraphics extends Graphics { ... }
, а затеммы вызываем метод drawRect, соответствующий данному объекту (который был создан из класса Graphics);
Yup.Часть публичного контракта к классу Graphics
.
, чтобы при выполнении класса aClase рисовался прямоугольник, это так?
Всякий раз, когдафреймворк Applet
решает обновить представление, которое вызовет этот метод, что приводит к рисованию прямоугольника.