Java как центр архипелага | страница 9
мист не может создать об®ект класса Class (правда, существуют и
другие классы с этим свойством). Ссылки на об®кт класса Class
можно получить с помощью метода getClass, определенного для об-
®ектов класса Object.
Об®екты класса Class используются для получения во время выпол-
нение информации о "классовых" свойствах об®екта. К об®ектам
класса Class, помимо прочих, применимы следующие методы:
1 public native String getName();
2 public native Class getSuperclass();
3 public static native Class forName(String className)
throws ClassNotFoundException;
Метод forName позволяет получить ссылку на класс по его имени.
Описатель native свидетельствует о том, что метод реализуется
средствами, внешними по отношению к Java-системе (например, пи-
шется на языке C).
4.1.1.2. Наследование
Модель наследования в языке Java существенно отличается от мо-
дели C++. Во-первых, в Java нет множественного наследования.
Во-вторых, в языке предусмотрены средства для запрета дальней-
шего наследования (ключевое слово final перед определением
класса). В-третьих, в языке Java присутствует новое по отноше-
нию к C++ понятие интерфейса.
Интерфейс представляет собой набор описаний методов. Пример:
public interface Verbose {
public void drawOn (Graphics g);
public void printOn (OutputStream os);
}
public class Star extends Polygon implements Verbose {
public void drawOn (Graphics g) {
// Конкретная реализация отрисовки
}
public void printOn (OutputStream os) {
// Конкретная реализация печати
}
}
public class Text extends StringBuffer implements Verbose {
public void drawOn (Graphics g) {
// Конкретная реализация отрисовки
}
public void printOn (OutputStream os) {
// Конкретная реализация печати
}
}
public class Blackboard extends Canvas {
public void drawVerbose (Verbose d) {
Graphics g = getGraphics ();
d.drawOn (g);
}
}
Интерфейс Verbose содержит два метода. Первый предназначен для
рисования в графическом контексте, второй - для распечатки в
выходной поток.
Класс Star предствляет собой подкласс многоугольников
(Polygon). Помимо прочего, мы хотим рисовать об®екты этого
класса на доске (Blackboard) и выводить их описание в файл.
Для об®ектов класса Text мы хотим иметь возможность начертать
текст на доске и выводить его в файл.
Класс Blackboard - наследник класса Canvas, специально предназ-
наченного для рисования. Как мы видим, этот класс с помощью