Использование final в java



Нельзя создать подкласс для класса, объявленного со спецификатором final:

// класс ConstCourse не может быть суперклассом

final class ConstCourse { /*код*/ }

// следующий класс невозможен

class BaseCourse extends ConstCourse { /*код*/ }

 


Пакеты в java

• Пакет – это совокупность классов и подпакетов, объединенных общим именем.

В реальных проектах пакеты часто именуются следующим образом:

• обратный интернет-адрес производителя программного обеспечения,

а именно для www.bsu.by получится by.bsu;

• далее следует имя проекта, например: eun;

• затем располагаются пакеты, определяющие собственно приложение.

При использовании классов перед именем класса через точку надо добавлять полное имя пакета, к которому относится данный класс. На рисунке приведен далеко не полный список пакетов реального приложения. Из названий пакетов можно определить, какие примерно классы в нем расположены, не заглядывая внутрь. При создании пакета всегда следует руководствоваться простым правилом: называть его именем простым, но отражающим смысл, логику поведения и функциональность объединенных в нем классов.


 

Интерфейсы в java

Интерфейсы подобны полностью абстрактным классам, но не являются классами. Ни один из объявленных методов не может быть реализован

внутри интерфейса. В языке Java существуют два вида интерфейсов: интерфейсы, определяющие контракт для классов посредством методов, и интерфейсы, реализация которых автоматически (без реализации методов) придает классу определенные свойства. К последним относятся, например, интерфейсы Cloneable и Serializable, отвечающие за клонирование и сохранение объекта в информа­ционном потоке соответственно.

Все объявленные в интерфейсе методы автоматически трактуются как public и abstract, а все поля – как public, static и final, даже если они так не объявлены. Класс может реализовывать любое число интерфейсов, указываемых через запятую после ключевого слова implements, дополняющего определение класса. После этого класс обязан реализовать все методы, полученные им от интерфейсов, или объявить себя абстрактным классом.

На множестве интерфейсов также определена иерархия наследования, но она не имеет отношения к иерархии классов.

Определение интерфейса имеет вид:

[public] interface Имя [extends Имя1, Имя2,…, ИмяN] {

/*реализация интерфейса*/}


Дата добавления: 2015-12-21; просмотров: 65; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!