Внешние интерфейсы компьютера для подключения устройств

Явная реализация интерфейсов

Последнее обновление: 07.10.2019

Кроме неявного применения интерфейсов, которое было рассмотрено в прошлой статье, сушествует также явная реализация интерфейса. При явной реализации
указывается название метода или свойства вместе с названием интерфейса, при этом мы не можем использовать модификатор public, то есть
методы являются закрытыми:

interface IAction
{
	void Move();
}
class BaseAction : IAction
{
	void IAction.Move()
	{
		Console.WriteLine("Move in Base Class");
	}
}

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

static void Main(string[] args)
{
	BaseAction action = new BaseAction();
	((IAction)action).Move();	// необходимо приведение к типу IAction

	// или так
	IAction action2 = new BaseAction();
	action2.Move();
	
	Console.ReadKey();
}

В какой ситуации может действительно понадобиться явная реализация интерфейса? Например, когда класс применяет несколько интерфейсов, но
они имеют один и тот же метод с одним и тем же возвращаемым результатом и одним и тем же набором параметров:

class Person : ISchool, IUniversity
{
    public void Study()
    {
        Console.WriteLine("Учеба в школе или в университете");
    }
}

interface ISchool
{
    void Study();
}

interface IUniversity
{
    void Study();
}

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

Чтобы разграничить реализуемые интерфейсы, надо явным образом применить интерфейс:

class Person : ISchool, IUniversity
{
    void ISchool.Study()
    {
        Console.WriteLine("Учеба в школе");
    }
    void  IUniversity.Study()
    {
        Console.WriteLine("Учеба в университете");
    }
}

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

static void Main(string[] args)
{
    Person p = new Person();

    ((ISchool)p).Study();
    ((IUniversity)p).Study();
	
    Console.Read();
}

Другая ситуация, когда в базовом классе уже реализован интерфейс, но необходимо в производном классе по-своему реализовать интерфейс:

interface IAction
{
	void Move();
}
class BaseAction : IAction
{
	public void Move()
	{
		Console.WriteLine("Move in BaseAction");
	}
}
class HeroAction : BaseAction, IAction
{
	void IAction.Move()
	{
		Console.WriteLine("Move in HeroAction");
	}
}

Несмотря на то, что базовый класс BaseAction уже реализовал интерфейс IAction, но производный класс по-своему реализует его.
Применение классов:

HeroAction action1 = new HeroAction();
action1.Move();            // Move in BaseAction
((IAction)action1).Move(); // Move in HeroAction

IAction action2 = new HeroAction();
action2.Move();             // Move in HeroAction

Модификаторы доступа

Члены интерфейса могут иметь разные модификаторы доступа. Если модификатор доступа не public, а какой-то другой, то для реализации метода, свойства или события интерфейса
в классах и структурах также необходимо использовать явную реализацию интерфейса.

interface IMovable
{
	protected internal void Move();
	protected internal string Name { get; set; }
	delegate void MoveHandler();
	protected internal event MoveHandler MoveEvent;
}
class Person : IMovable
{
	// явная реализация свойства - в виде автосвойства
	string IMovable.Name { get; set; }

	// явная реализация события - дополнительно создается переменная
	IMovable.MoveHandler _moveEvent;
	event IMovable.MoveHandler IMovable.MoveEvent
	{
		add => _moveEvent += value;
		remove => _moveEvent -= value;
	}

	// явная реализация метода
	void IMovable.Move()
	{
		Console.WriteLine("Person is walking"); 
		_moveEvent();
	}
}
class Program
{
	static void Main(string[] args)
	{
		IMovable mov = new Person();
		// подписываемся на событие
		mov.MoveEvent += () => Console.WriteLine("IMovable is moving");
		mov.Move();
	}
}

В данном случае опять же надо учитывать, что напрямую мы можем обратиться к подобным методам, свойствам и событиям через переменную интерфейса, но не переменную класса.

НазадВперед

Что внутри системника?

Итак, имеем в чистом виде материнскую плату со множеством разъемов которые и являются внутренним интерфейсом. К ним относятся:

  • сокет для установки процессора;
  • обычно четыре гнезда для монтажа оперативной DDR памяти только определенного 2, 3 или 4-го поколения;
  • шина AGP, раньше используемая исключительно для видеокарты;
  • универсальная шина PCI Express для подключения дополнительных модулей (в т. ч. графических и звуковых адаптеров). На одной плате может быть несколько внешне аналогичных PCI разъемов типов 1.0, 2.0, 3.0 и 4.0, отличающихся скоростью передачи данных.
  • для подключения устройств хранения информации раньше использовался шлейф с универсальной шиной IDE. Сейчас же жесткие диски, DVD приводы коммутируются посредством разъема SATA и дополнительного канала питания;

Кстати, вспомним о энергоснабжении системы. Блок питания, имеет внешний интерфейс для подключения к электросети и внутренние вилки, отличающиеся конфигурацией и подаваемым напряжением: ATX для материнской платы, 4-контактный для CPU, 6-и и 8-и пиновй для PCI Express, 15-и контактный для SATA, универсальный «Molex». Вентиляторы можно подключать к контактным гнездам, размещенным непосредственно на системной плате.

Понятие интерфейса пользователя

Интерфейс — совокупность технических, программных и методических (протоколов, правил, соглашений) средств сопряжения в вычислительной системе пользователей с устройствами и программами, а также устройств с другими устройствами и программами.

Интерфейс — в широком смысле слова, это способ (стандарт) взаимодействия между объектами. Интерфейс в техническом смысле слова задаёт параметры, процедуры и характеристики взаимодействия объектов. Различают:

Интерфейс пользователя — набор методов взаимодействия компьютерной программы и пользователя этой программы.

Программный интерфейс — набор методов для взаимодействия между программами.

Физический интерфейс — способ взаимодействия физических устройств. Чаще всего речь идёт о компьютерных портах.

Пользовательский интерфейс — это совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером. Основу такого взаимодействия составляют диалоги. Под диалогом в данном случае понимают регламентированный обмен информацией между человеком и компьютером, осуществляемый в реальном масштабе времени и направленный на совместное решение конкретной задачи. Каждый диалог состоит из отдельных процессов ввода / вывода, которые физически обеспечивают связь пользователя и компьютера. Обмен информацией осуществляется передачей сообщения.

Рис.1. Взаимодействие пользователя с компьютером

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

запрос информации

запрос помощи

запрос операции или функции

ввод или изменение информации

В ответ пользователь получает подсказки или справки; информационные сообщения, требующие ответа; приказы, требующие действия; сообщения об ошибках и другую информацию.

Интерфейс пользователя компьютерного приложения включает:

средства отображения информации, отображаемую информацию, форматы и коды;

командные режимы, язык «пользователь — интерфейс»;

устройства и технологии ввода данных;

диалоги, взаимодействие и транзакции между пользователем и компьютером, обратную связь с пользователем;

поддержку принятия решений в конкретной предметной области;

порядок использования программы и документацию на неё.

Пользовательский интерфейс (ПИ) часто понимают только как внешний вид программы. Однако на деле пользователь воспринимает через него всю программу в целом, а значит, такое понимание является слишком узким. В действительности ПИ объединяет в себе все элементы и компоненты программы, которые способны оказывать влияние на взаимодействие пользователя с программным обеспечением (ПО).

Это не только экран, который видит пользователь. К этим элементам относятся:

набор задач пользователя, которые он решает при помощи системы;

используемая системой метафора (например, рабочий стол в MS Windows);

элементы управления системой;

навигация между блоками системы;

визуальный (и не только) дизайн экранов программы;

средства отображения информации, отображаемая информация и форматы;

устройства и технологии ввода данных;

диалоги, взаимодействие и транзакции между пользователем и компьютером;

обратная связь с пользователем;

поддержка принятия решений в конкретной предметной области;

порядок использования программы и документация на нее.

Проводные сети: особенности, плюсы и минусы

Современные офисные проводные сети используют, как правило, витую пару и порты стандарта RJ-45. Работа проводных сетей описываются стандартами IEEE 802.3. На сегодняшний день используется два основных стандарта:

  • IEEE 802.3u с максимальной пропускной способностью 100 Мбит/с. Сегодня встречается только в бюджетных ноутбуках, старых компьютерах, включая сетевое оборудование, либо в устройствах, где высокая скорость не нужна;
  • IEEE 802.3ab с максимальной пропускной способностью 1000 Мбит/с на сегодняшний день является наиболее распространенным — гигабитные сетевые карты интегрируются в большинство материнских плат, на рынке есть широкий выбор сетевого оборудования, в том числе недорогого.

Существует так же стандарт IEEE 802.3an, позволяющий при определенных условиях достичь скорости в 10 Гбит/с при использовании обычной медной витой пары. Поддержку данного стандарта можно встретить в рабочих станциях и серверах, однако 10-Гигабитные коммутаторы стоят слишком дорого для SOHO, что тормозит замещение гигабитной сети 10-гигибатной. Есть промежуточные решения — гигабитные коммутаторы с 2-4 10-гигабитными SFP+ разъемами, что позволяет подключить сервер или другой сегмент сети по 10-гигабитному интерфейсу.

Плюсы проводной сети

Основное достоинство проводной сети – стабильность и надежность работы.

Высокая скорость и стабильность работы. Итак, возьмем распространенную конфигурацию сети со скоростью работы 1 Гбит/с. Эта скорость доступна для каждого клиента в сети и не делится между ними, плюс, это скорость в каждую сторону, т.е. суммарная пропускная способность может достигать 2000 Мбит/с (IEEE 802.3ab). Кроме того, есть поддержка больших пакетов (Jumbo Frame, это пакеты по 9кб и 16кб), что позволяет увеличить скорость при передаче больших объемов данных за счет сокращения передачи служебной информации, а также снизить нагрузку на процессор. Еще одним способом, повышающим пропускную способность сети, является агрегация каналов (IEEE 802.3ad), которая позволяет получить пропускную способность выше 1 Гбит/с. Наконец, витая пара эффективно работает при длине провода до 100 м без ухудшения стабильности и скорости соединения.

Оборудование. Гигабитный контроллер проводной сети сегодня интегрирован в любую продающуюся материнскую плату, т.е. по факту является бесплатным для пользователя. Кабели тоже относительно дешевы, плюс, их можно нарезать самостоятельно до нужной длины. Сетевое оборудование на рынке есть, что называется, на любой вкус и кошелек, всегда можно найти недорогие и при этом эффективные решения.

Безопасность. Один из существенных плюсов проводной сети – безопасность. В первую очередь физическая, т.к. чтобы подключиться к сети, злоумышленнику нужен физический доступ в помещение, к розетке.

Минусы проводной сети

Как и с любым кабелем, основной минус – необходимость прокладки кабелей до каждого рабочего места, а в дальнейшем – привязка работника к этому рабочему месту. Разводка, как правило, осуществляется при ремонте помещения, поэтому при любых изменениях в организации офиса сетевую инфраструктуру тоже, скорее всего, придется перекладывать. В результате поменять рассадку сотрудников, добавить рабочие места или сетевое оборудование (принтер, МФУ и пр.) – нетривиальная задача, для которой может потребоваться перепрокладка кабелей. Ну или разного рода «костыли».

Наконец, к одному проводу возможно подключение только одного устройства, а некоторые устройства (смартфоны, планшеты и т.д.) к проводной сети вообще не подключишь.

Интерфейсы в обобщениях

Последнее обновление: 13.10.2018

Интерфейсы как ограничения обобщений

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

Допустим, у нас есть следующие интерфейсы и класс, который их реализует:

interface IAccount
{
	int CurrentSum { get; }	// Текущая сумма на счету
	void Put(int sum);		// Положить деньги на счет
	void Withdraw(int sum);	// Взять со счета
}
interface IClient
{
	string Name { get; set; }
}
class Client : IAccount, IClient
{
	int _sum; // Переменная для хранения суммы
	public Client(string name, int sum)
	{
		Name = name;
		_sum = sum;
	}

	public string Name { get; set; }
    public int CurrentSum
	{
		get { return _sum; }
	}
	public void Put(int sum)
	{
		_sum += sum;
	}
	public void Withdraw(int sum)
	{
		if (sum <= _sum)
        {
			_sum -= sum;
		}
	}
}

Используем выше перечисленные интерфейсы в качестве ограничений обобщенного класса:

class Transaction<T> where T: IAccount, IClient
{
	public void Operate(T acc1, T acc2, int sum)
	{
		if(acc1.CurrentSum >= sum)
		{
			acc1.Withdraw(sum);
			acc2.Put(sum);
			Console.WriteLine($"{acc1.Name} : {acc1.CurrentSum}\n{acc2.Name} : {acc2.CurrentSum}");
		}
	}
}

В данном случае параметр T представляет тип, который который реализует сразу два интерфейса IAccount и IClient. Например, выше определен класс Client, который реализует оба интерфейса,
поэтому мы можем данным типом типизировать объекты Transaction:

Client account1 = new Client("Tom", 200);
Client account2 = new Client("Bob", 300);
Transaction<Client> transaction = new Transaction<Client>();
transaction.Operate(account1, account2, 150);

Также параметр T может представлять интерфейс, который наследуется от обоих интерфейсов:

interface IClientAccount : IAccount, IClient
{

}
class ClientAccount : IClientAccount
{
	int _sum;
	public ClientAccount(string name, int sum)
    {
		_sum = sum; Name = name;
	}
	public int CurrentSum { get { return _sum; } }

	public string Name { get; set; }

	public void Put(int sum)
	{
		_sum += sum;
	}
	public void Withdraw(int sum)
	{
		if (_sum >= sum) _sum -= sum;
	}
}

В этом случае объекты Transaction мы можем типизировать типом IClientAccount:

IClientAccount account3 = new ClientAccount("Alice", 400);
IClientAccount account4 = new ClientAccount("Kate", 500);
Transaction<IClientAccount> operation = new Transaction<IClientAccount>();
operation.Operate(account3, account4, 200);

Обобщенные интерфейсы

Как и классы, интерфейсы могут быть обобщенными:

interface IUser<T>
{
	T Id { get; }
}
class User<T> : IUser<T>
{
	T _id;
	public User(T id)
	{
		_id = id;
	}
	public T Id { get { return _id; } }
}

Интерфейс IUser типизирован параметром T, который при реализации интерфейса используется в классе User. В частности, переменная _id определена как T,
что позволяет нам использовать для id различные типы.

Определим две реализации: одна в качестве параметра будет использовать тип int, а другая — тип string:

IUser<int> user1 = new User<int>(6789);
Console.WriteLine(user1.Id);    // 6789

IUser<string> user2 = new User<string>("12345");
Console.WriteLine(user2.Id);    // 12345

Также при реализации интерфейса мы можем явным образом указать, какой тип будет использоваться для параметра T:

class IntUser : IUser<int>
{
	int _id;
	public IntUser(int id)
	{
		_id = id;
	}
	public int Id { get { return _id; } }
}

НазадВперед

Примечания

  1. Р 50.1.041-2002: Информационные технологии. Руководство по проектированию профилей среды открытой системы (СОС) организации-пользователя
  2. СТО НОСТРОЙ 2.15.9-2011: Инженерные сети зданий и сооружений внутренние. Устройство систем распределенного управления. Монтаж, испытания и наладка. Требования, правила и методы контроля
  3. Першиков В. И., Савинков В. М. Толковый словарь по информатике / Рецензенты: канд. физ.-мат. наук А. С. Марков и д-р физ.-мат. наук И. В. Поттосин. — М.: Финансы и статистика, 1991. — 543 с. — 50 000 экз. — ISBN 5-279-00367-0.
  4. ОСТ 45.68-96 Классификация и условные обозначения стыков (интерфейсов) цифровых станций местных телефонных сетей
  5. Мячев А. А. Интерфейсы средств вычислительной техники. Энциклопедический справочник. М.: Радио и связь, 1993. С. 4.

Типы оптических разъемов

В настоящее время наиболее распространены три типа оптических разъемов: FC, SC и LC.

FC

Разъемы FC, как правило, используются в одномодовых соединених. Корпус разъема выполнен из никелированной латуни. Резьбовая фиксация позволяет обеспечить надежную защиту от случайных разъединения.

Старый, зарекомендовавший себя стандарт. Обеспечивает отличное качество соединения, особенно FC/UPC, FC/APC.

  • подпружиненное соединение, за счет чего достигается «вдавливание» и плотный контакт;
  • металлической колпачок обеспечивает прочную защиту;
  • коннектор вкручивается в розетку, а значит, не может выскочить, даже если случайно дернуть;
  • шевеление кабеля не влияет на соединение.

Однако плохо подходит для плотного расположения разъемов — необходимо пространство для вкручивания/выкручивания.

SC

Более дешевый и удобный, но менее надежный аналог FC. Легко соединяется (защелка), разъемы могут располагаться плотно.

Однако пластиковая оболочка может сломаться, а на затухание сигнала и обратные отражения влияют даже прикосновения к коннектору.

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

Тип разъема SC используется как для многомодового волокна, так и одномодового. Диаметр наконечника 2,5 мм, материал — керамика. Корпус коннектора выполнен из пластика. Фиксация коннектора осуществляется поступательным движением с защелкиванием.

LC

Уменьшенный аналог SC. За счет малого размера применяется для кроссовых соединений в офисах, серверных и т.п. — внутри помещений, там где требуется высокая плотность расположения разъемов.

Диаметр наконечника разъема 1,25 мм, материал — керамика. Фиксация разъема происходит за счет прижимного механизма — защелки, аналогично разъему типа RJ-45, которая исключает непредвиденное разъединение.

При использовании дуплексных патчкордов возможно соединение коннекторов клипсой. Используется для многомодовых и одномодовых волокон.

Автор разработки этого типа коннектора — ведущий производитель телекоммуникационного оборудования, Lucent Technologies (США) — изначально прогнозировал своему детищу судьбу лидера рынка. В принципе, так оно и есть. Особенно учитывая то, что этот тип разъема относится к соединениям с повышенной плотностью монтажа.

ST

В настоящее время ST коннектор широко не применяется из-за недостатков и возросших потребностей по плотности монтажа. Фиксация коннектора происходит за счет поворота вокруг оси, подобно BNC разъему.

PROFINET

PROFINET – это открытый инновационный стандарт Industrial Ethernet (IEC 61158), охватывающий широкий спектр требований по использованию Ethernet в системах автоматизации, дальнейшее развитие сети Industrial Ethernet. PROFINET позволяет выполнять системно широкий обмен данными, поддерживает проектирование в масштабах предприятия и использует IT стандарты вплоть до полевого уровня. Существующие решения на базе промышленных сетей PROFIBUS и AS-Interface могут быть легко интегрированы в PROFINET. PROFINET существенно расширяет функциональные возможности сети Industrial Ethernet, имеющие решающее значение для построения систем автоматизации различного назначения.

PROFINET базируется на Industrial Ethernet и использует стандарт TCP/IP для дистанционного программирования, настройки параметров, конфигурирования и диагностики сетевых систем автоматизации. Одновременно он позволяет использовать те же каналы связи для обмена данными между системами автоматизации в реальном масштабе времени (RT), а также в реальном масштабе времени с использованием тактовой синхронизации (IRT). PROFINET позволяет создавать системы распределенного ввода-вывода, в которых приборы полевого уровня подключаются непосредственно к сети Industrial Ethernet и обслуживаются PROFINET контроллером ввода-вывода. PROFINET IO поддерживает единую концепцию диагностики и поиска неисправностей в системах автоматизации SIMATIC. Стандарт PROFINET позволяет также создавать распределенные системы управления перемещением / позиционированием с минимальным временем цикла шины и поддержкой профиля PROFIdrive. Благодаря поддержки модульных систем управления с распределенным интеллектом, базирующихся на использовании технологии CBA (Component Based Automation), обеспечивается возможность интеграции существующих решений на базе PROFIBUS в системы PROFINET CBA. Адресация и диагностика сети PROFINET базируется на использовании IT стандартов, таких как DCP и SNMP. PROFINET позволяет использовать не только проводные, но и беспроводные каналы связи. Для построения таких сетей применяются коммуникационные компоненты семейства SCALANCE W. Доступ к данным сети PROFINET может выполняться со стороны Web клиентов. Такой доступ базируется на стандартных Internet технологиях подобных HTTP, XML, HTML и скриптов. Передача данных в стандартных форматах позволяет использовать для их отображения стандартные Web браузеры, интегрировать данные сети PROFINET в современные информационные системы. Для защиты данных систем автоматизации PROFINET позволяет использовать все способы, хорошо зарекомендовавшие себя в офисных приложениях: управление доступом и авторизация, установка уровней доступа, использование операций кодирования данных, использование виртуальных сетей и т.д. Для реализации всех перечисленных функций в промышленных условиях предлагается использование сетевых компонентов серии SCALANCE S. PROFINET позволяет также создавать распределенные системы противоаварийной защиты и автоматики безопасности (F-системы) с обменом данными на основе профиля PROFIsafe.

RS-485 W4

Стандарт RS-485 с 4-проводной схемой позволяет в противовес стандарту RS-485 с 2-проводной схемой осуществлять связь через шину в дуплексном режиме. Примером этого является измерительная шина DIN-Messbus. В отличие от 2-проводной технологии в этом случае ветви передачи приемника отделены друг от друга и поэтому могут работать одновременно. Топологии, основанные на принципе «ведущий/ведомый», применяются предпочтительно в измерительных шинных системах, в которых ведущее устройство ведет передачу данных максимально 32 ведомым, находящимся в режиме «слушания». Ветви передачи ведомых устройств могут находиться в третьем дискретном состоянии (tri-state), в котором поддерживается их высокое полное сопротивление. Только измерительная станция, к которой поступил запрос, активно подключает свой передатчик к шине. Электрические уровни и их логические значения соответствуют, как и во всех других интерфейсах типа RS-485, стандарту RS-422. Максимальная скорость передачи составляет 10 Мбит/с. Кабель шины должен иметь оконечные сопротивления, его жилы должны быть попарно скручены и экранированы.

FOUNDATION Fieldbus

Полевая сеть FOUNDATION Fieldbus H1 основывается на стандарте IEC 61158-2 и использует метод передачи данных MBP. Для передачи данных и питания сегментов этой сети используется экранированный 2-проводной кабель. Скорость передачи данных достигает 31,25 Кбит/сек. На одном сегменте сети FOUNDATION Fieldbus можно поместить до 32 узлов (вместе с модулем связи). Максимальная длина сегмента составляет 1900м. Сеть FOUNDATION Fieldbus H1 обладает таким отличительными характеристиками, как передача питания полевым устройствам, использование в опасных зонах с помощью искробезопасных устройств с барьерами, детерминированный цикл передачи данных, стандартный интерфейс шины и интеграция устройств с помощью стандартизованных описаний, поддержка локального управления, линейная, древовидная и кольцевая топологии.

Модем

Обычная телефонная сеть позволяет передавать только аналоговые сигналы в диапазоне частот от 300 Гц до 3,4 кГц. Поэтому для передачи через телефонную сеть цифровых сигналов от последовательных интерфейсов необходимо предварительное преобразование. Для этого требуется устройство, преобразующее поток цифровых данных в колебания аналоговых сигналов, а эти колебания затем обратно в поток цифровых данных. Эти процессы называют модуляцией и демодуляцией, а устройство, их выполняющее, соответственно модемом. Процесс образования коммутируемой связи соответствует международным стандартам. При этом несущая частота служит для синхронизации обоих модемов. С помощью общедоступной телефонной сети можно таким образом реализовать канал между устройствами, расположенными в любой точке мира. Но даже при использовании выделенной линии расстояния в 20 км не составляют проблемы.

Хотя требуется только два провода, передача данных чаще всего происходит в дуплексном режиме.

Максимальная производительность аналоговой линии составляет 33,6 кбит/с.

Передач а по стандарту V.90 со скоростью 56 кбит/с возможна только от интернет-сервера к модему. В обратном направлении, т.е. от модема V.90 к модему V.90, скорость передачи составляет максимум 33,6 кбит/с.

Вывод

Между абстрактными классами и интерфейсами есть два основных отличия. Их нужно знать и понимать. Интерфейсы — это некая разновидность множественного наследования, в которых есть ограничения (только открытые абстрактные методы и константы). Класс может реализовать множество интерфейсов, но не стоит забывать, что сам класс может расширить только один класс, даже если в нем содержатся абстрактные методы. Абстрактный класс, в свою очередь, может содержать статические методы, защищенные компоненты. Помня эти главные отличия, будет значительно проще выбрать средства реализации задачи, множественное наследование с интерфейсами. Абстрактные классы используют для частичной реализации методов, для простого наследования. Впрочем, перенаправление довольно универсальное решение. Нужно помнить, что класс, который планируется в дальнейшем расширяться, стоит представить в виде интерфейса, что значительно расширяет возможности. Применение интерфейса позволяет расширять классы или применять перенаправление, в случае сложных реализаций интерфейса.

Похожие темы

  • Практические советы по подготовке к экзамену SCJP 6 Цель SCJP.
  • Практические советы по подготовке к экзамену SCJP 6: Примеры задач. Часть 1.
  • Практические советы по подготовке к экзамену SCJP 6: Примеры задач. Часть 2.
  • Практические советы по подготовке к экзамену SCJP 6: Примеры задач. Часть 3.
  • Практические советы по подготовке к экзамену SCJP 6: Примеры задач. Часть 4.
  • Практические советы по подготовке к экзамену SCJP 6: Примеры задач. Часть 5.
  • Практические советы по подготовке к экзамену SCJP 6: Примеры задач. Часть 6.
  • Практические советы по подготовке к экзамену SCJP 6: Примеры задач. Часть 7.
  • Практические советы по подготовке к экзамену SCJP 6: Примеры задач. Часть 8.
  • Практические советы по подготовке к экзамену SCJP 6: Примеры задач. Часть 9.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *