ݺߣ

ݺߣShare a Scribd company logo
1
4. Интерфейсы
Объектно-ориентированное программирование
() Владислав Лавров, vlavrov.com
2
Интерфейс (interface) — это именованный набор абстрактных членов.
• Абстрактные методы не имеют никакой стандартной реализации.
• Интерфейс выражает поведение, которое данный класс или структура может избрать
для поддержки.
• Количество абстрактных членов в интерфейсе зависит от того, какое поведение
пытаются смоделировать при помощи этого интерфейса.
• Каждый класс (или структура) может поддерживать столько интерфейсов, сколько
необходимо, и, следовательно, тем самым поддерживать множество поведений.
Интерфейс
() Владислав Лавров, vlavrov.com
3
Пример иерархия геометрических фигур с интерфейсами
IPoint показывает
количество углов
фигуры
() Владислав Лавров, vlavrov.com
4
Пример объявление интерфейсов
Во всех классах, наследуемых от данного интерфейса, метод GetNumbersOfPoints()
обязательно должен быть реализован!
() Владислав Лавров, vlavrov.com
5
Пример реализации интерфейса для класса Hexagon
() Владислав Лавров, vlavrov.com
6
Пример реализации интерфейса для класса Triangle
() Владислав Лавров, vlavrov.com
7
Способы получения ссылки на интерфейс
Способ 1. Явное приведение типов
() Владислав Лавров, vlavrov.com
8
Способы получения ссылки на интерфейс (продолжение)
(!) Чтобы избежать проблем с исключением, исключение нужно
перехватить и обработать
() Владислав Лавров, vlavrov.com
9
Способ 2. Использовать ключевое слово as
Способы получения ссылки на интерфейс (продолжение)
() Владислав Лавров, vlavrov.com
10
Способ 3. Использовать оператор is
Способы получения ссылки на интерфейс (продолжение)
() Владислав Лавров, vlavrov.com
11
Пример Использование интерфейсов
() Владислав Лавров, vlavrov.com

More Related Content

What's hot (20)

[OOP - Lec 20,21] Inheritance
[OOP - Lec 20,21] Inheritance[OOP - Lec 20,21] Inheritance
[OOP - Lec 20,21] Inheritance
Muhammad Hammad Waseem
Java Lambda Expressions.pptx
Java Lambda Expressions.pptxJava Lambda Expressions.pptx
Java Lambda Expressions.pptx
SameerAhmed593310
Spring framework core
Spring framework coreSpring framework core
Spring framework core
Taemon Piya-Lumyong
Fiddler: 웹 디버깅 프록시
Fiddler: 웹 디버깅 프록시Fiddler: 웹 디버깅 프록시
Fiddler: 웹 디버깅 프록시
Taegon Kim
react-js-notes-for-professionals-book.pdf
react-js-notes-for-professionals-book.pdfreact-js-notes-for-professionals-book.pdf
react-js-notes-for-professionals-book.pdf
AdilKhalki1
Implementando Testes Unitários em Java - Manoel PimentelImplementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel Pimentel
Manoel Pimentel Medeiros
Collections In Java
Collections In JavaCollections In Java
Collections In Java
Binoj T E
RESTful API 제대로 만들기
RESTful API 제대로 만들기RESTful API 제대로 만들기
RESTful API 제대로 만들기
Juwon Kim
Cap1 exercicios comandos linuxCap1 exercicios comandos linux
Cap1 exercicios comandos linux
portal_Do_estudante
Spock Framework
Spock FrameworkSpock Framework
Spock Framework
Леонид Ставила
Hacker ProfissionalHacker Profissional
Hacker Profissional
Diolene Sampaio
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
Rudson Kiyoshi Souza Carvalho
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
Mariana de Azevedo Santos
Training Offerings - CodeOps Technologies
Training Offerings - CodeOps TechnologiesTraining Offerings - CodeOps Technologies
Training Offerings - CodeOps Technologies
CodeOps Technologies LLP
Nodejs
NodejsNodejs
Nodejs
Vinod Kumar Marupu
Abstract Class Presentation
Abstract Class PresentationAbstract Class Presentation
Abstract Class Presentation
tigerwarn
Les collections en JavaLes collections en Java
Les collections en Java
Papa Cheikh Cisse
Ppt of c vs c#
Ppt of c vs c#Ppt of c vs c#
Ppt of c vs c#
shubhra chauhan
Abstract class and Interface
Abstract class and InterfaceAbstract class and Interface
Abstract class and Interface
Haris Bin Zahid
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
Woo Jin Kim
Fiddler: 웹 디버깅 프록시
Fiddler: 웹 디버깅 프록시Fiddler: 웹 디버깅 프록시
Fiddler: 웹 디버깅 프록시
Taegon Kim
react-js-notes-for-professionals-book.pdf
react-js-notes-for-professionals-book.pdfreact-js-notes-for-professionals-book.pdf
react-js-notes-for-professionals-book.pdf
AdilKhalki1
Implementando Testes Unitários em Java - Manoel PimentelImplementando Testes Unitários em Java - Manoel Pimentel
Implementando Testes Unitários em Java - Manoel Pimentel
Manoel Pimentel Medeiros
Collections In Java
Collections In JavaCollections In Java
Collections In Java
Binoj T E
RESTful API 제대로 만들기
RESTful API 제대로 만들기RESTful API 제대로 만들기
RESTful API 제대로 만들기
Juwon Kim
Cap1 exercicios comandos linuxCap1 exercicios comandos linux
Cap1 exercicios comandos linux
portal_Do_estudante
Hacker ProfissionalHacker Profissional
Hacker Profissional
Diolene Sampaio
Maven introdução Muito RápidaMaven introdução Muito Rápida
Maven introdução Muito Rápida
Rudson Kiyoshi Souza Carvalho
Spring: Overview do framework mais popular para desenvolvimento em JavaSpring: Overview do framework mais popular para desenvolvimento em Java
Spring: Overview do framework mais popular para desenvolvimento em Java
Mariana de Azevedo Santos
Abstract Class Presentation
Abstract Class PresentationAbstract Class Presentation
Abstract Class Presentation
tigerwarn
Les collections en JavaLes collections en Java
Les collections en Java
Papa Cheikh Cisse

Similar to Интерфейсы (20)

Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Alexey Neznanov
Oop java.generics
Oop java.genericsOop java.generics
Oop java.generics
muqaddas_m
Некоторые трудности при обучении программированию: что нельзя обойти и умолч...
Некоторые трудности при обучении программированию:что нельзя обойти и умолч...Некоторые трудности при обучении программированию:что нельзя обойти и умолч...
Некоторые трудности при обучении программированию: что нельзя обойти и умолч...
Alexey Neznanov
Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)
Alex Ott
C++ осень 2012 лекция 7
C++ осень 2012 лекция 7C++ осень 2012 лекция 7
C++ осень 2012 лекция 7
Technopark
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
Levon Avakyan
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, generics
Noveo
Внедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной ШинеВнедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной Шине
SQALab
Вещи в Java, о которых вы (возможно) не знали
Вещи в Java, о которых вы (возможно) не зналиВещи в Java, о которых вы (возможно) не знали
Вещи в Java, о которых вы (возможно) не знали
Zheka Kozlov
Java Core. Lecture# 1. Intro
Java Core. Lecture# 1. IntroJava Core. Lecture# 1. Intro
Java Core. Lecture# 1. Intro
Anton Moiseenko
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5
Technopark
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
Igor Shkulipa
Составные части объектного подхода
Составные части объектного подходаСоставные части объектного подхода
Составные части объектного подхода
Ural Federal University named after First President of Russia B.N. Yeltsin
Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Вор...
Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Вор...Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Вор...
Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Вор...
solit
Полнота тестирования ПО
Полнота тестирования ПОПолнота тестирования ПО
Полнота тестирования ПО
Marat Akhin
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
YakubovichDA
C# Desktop. Занятие 13.
C# Desktop. Занятие 13.C# Desktop. Занятие 13.
C# Desktop. Занятие 13.
Igor Shkulipa
C++ осень 2012 лекция 9
C++ осень 2012 лекция 9C++ осень 2012 лекция 9
C++ осень 2012 лекция 9
Technopark
Ruby строки
Ruby строкиRuby строки
Ruby строки
Evgeny Smirnov
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Alexey Neznanov
Некоторые трудности при обучении программированию: что нельзя обойти и умолч...
Некоторые трудности при обучении программированию:что нельзя обойти и умолч...Некоторые трудности при обучении программированию:что нельзя обойти и умолч...
Некоторые трудности при обучении программированию: что нельзя обойти и умолч...
Alexey Neznanov
Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)Введение в Clojure (Margincon 2010)
Введение в Clojure (Margincon 2010)
Alex Ott
C++ осень 2012 лекция 7
C++ осень 2012 лекция 7C++ осень 2012 лекция 7
C++ осень 2012 лекция 7
Technopark
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
Levon Avakyan
Android - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, genericsAndroid - 02 - annotations, exceptions, io, generics
Android - 02 - annotations, exceptions, io, generics
Noveo
Внедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной ШинеВнедрение автоматизации тестирования на Сервисной Шине
Внедрение автоматизации тестирования на Сервисной Шине
SQALab
Вещи в Java, о которых вы (возможно) не знали
Вещи в Java, о которых вы (возможно) не зналиВещи в Java, о которых вы (возможно) не знали
Вещи в Java, о которых вы (возможно) не знали
Zheka Kozlov
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5
Technopark
C# Desktop. Занятие 01.
C# Desktop. Занятие 01.C# Desktop. Занятие 01.
C# Desktop. Занятие 01.
Igor Shkulipa
Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Вор...
Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Вор...Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Вор...
Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Вор...
solit
Полнота тестирования ПО
Полнота тестирования ПОПолнота тестирования ПО
Полнота тестирования ПО
Marat Akhin
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
YakubovichDA
C# Desktop. Занятие 13.
C# Desktop. Занятие 13.C# Desktop. Занятие 13.
C# Desktop. Занятие 13.
Igor Shkulipa
C++ осень 2012 лекция 9
C++ осень 2012 лекция 9C++ осень 2012 лекция 9
C++ осень 2012 лекция 9
Technopark

More from Ural Federal University named after First President of Russia B.N. Yeltsin (20)

2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.2016 ВКР Черемискина Н.А.
2016 ВКР Черемискина Н.А.
Ural Federal University named after First President of Russia B.N. Yeltsin
2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.2016 ВКР Гребнева Н.В.
2016 ВКР Гребнева Н.В.
Ural Federal University named after First President of Russia B.N. Yeltsin
2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.2016 ВКР Имашева А.А.
2016 ВКР Имашева А.А.
Ural Federal University named after First President of Russia B.N. Yeltsin
Введение в методы agile
Введение в методы agileВведение в методы agile
Введение в методы agile
Ural Federal University named after First President of Russia B.N. Yeltsin
ООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсыООП. Рекомендуемые информационные ресурсы
ООП. Рекомендуемые информационные ресурсы
Ural Federal University named after First President of Russia B.N. Yeltsin
Методоллогии Agile
Методоллогии AgileМетодоллогии Agile
Методоллогии Agile
Ural Federal University named after First President of Russia B.N. Yeltsin
3. Общая характеристика АСУ
3. Общая характеристика АСУ3. Общая характеристика АСУ
3. Общая характеристика АСУ
Ural Federal University named after First President of Russia B.N. Yeltsin
3. Информация и ее роль
3. Информация и ее роль3. Информация и ее роль
3. Информация и ее роль
Ural Federal University named after First President of Russia B.N. Yeltsin
Образовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУОбразовательная программа ИСТ на кафедре ТИМ УрФУ
Образовательная программа ИСТ на кафедре ТИМ УрФУ
Ural Federal University named after First President of Russia B.N. Yeltsin
1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ1. Кафедра ТИМ УрФУ
1. Кафедра ТИМ УрФУ
Ural Federal University named after First President of Russia B.N. Yeltsin
магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+магистратура 09.04.02 ист на кафедре тим урфу+
магистратура 09.04.02 ист на кафедре тим урфу+
Ural Federal University named after First President of Russia B.N. Yeltsin
магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+магистратура 22.04.02 металлургия на кафедре тим+
магистратура 22.04.02 металлургия на кафедре тим+
Ural Federal University named after First President of Russia B.N. Yeltsin
1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+1.5 тп (технологические подходы)+
1.5 тп (технологические подходы)+
Ural Federal University named after First President of Russia B.N. Yeltsin
1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+1.4 тп (общие принципы разработки)+
1.4 тп (общие принципы разработки)+
Ural Federal University named after First President of Russia B.N. Yeltsin
1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+1.3 тп (источники ошибок)+
1.3 тп (источники ошибок)+
Ural Federal University named after First President of Russia B.N. Yeltsin
2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД2014 Сабиров Е.Р. презентация КП по ПБД
2014 Сабиров Е.Р. презентация КП по ПБД
Ural Federal University named after First President of Russia B.N. Yeltsin
2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД2014 Мищенко К.В. презентация КП по ПБД
2014 Мищенко К.В. презентация КП по ПБД
Ural Federal University named after First President of Russia B.N. Yeltsin
2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД2014 Пильщиков С.Н. презентация КП по ПБД
2014 Пильщиков С.Н. презентация КП по ПБД
Ural Federal University named after First President of Russia B.N. Yeltsin
2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю2014 диплом Терехова А.Ю
2014 диплом Терехова А.Ю
Ural Federal University named after First President of Russia B.N. Yeltsin
2014 диплом Мухаметшин Р.Р
2014 диплом Мухаметшин Р.Р2014 диплом Мухаметшин Р.Р
2014 диплом Мухаметшин Р.Р
Ural Federal University named after First President of Russia B.N. Yeltsin

Интерфейсы