Презентация Наследование классов. Спецификация базового класса. (Лекция 3) онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Наследование классов. Спецификация базового класса. (Лекция 3) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 21 слайд. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Наследование классов. Спецификация базового класса. (Лекция 3)



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    21 слайд
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    147.31 kB
  • Просмотров:
    55
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Наследование классов Механизм
Содержание слайда: Наследование классов Механизм наследования поддерживает концепцию иерархии классов. Наследование используются в следующих случаях: 1. Расширение базового класса путем добавления новых данных и методов (повторное использование кода). 2. Изменение поведения функций базового класса (перегрузка функций). 3. Взаимозаменяемые объекты (полиморфизм и позднее связывание).

№2 слайд
Спецификация базового класса
Содержание слайда: Спецификация базового класса Суперкласс указывается ключевым словом extends. Он должен быть доступным классом и не иметь модификатора final. Классы, для которых не указан расширяемый класс, являются неявным расширением класса Object. Object oref = new A();

№3 слайд
Доступ к компонентам базового
Содержание слайда: Доступ к компонентам базового класса super — используется как ссылка на экземпляр суперкласса с целью обеспечения доступа к одноименным нестатическим полям и методам суперкласса. class ClassA { float x; ... } class ClassB extends ClassA { int x; ... public void method l(int x) { int iX1 = x; // присваивание значения параметра метода int iX2 = this.x; // присваивание значения поля данного класса float fX = super.x; // присваивание значения поля суперкласса } } class ClassA { ... public void method2() {...} ... } class ClassB extends ClassA { ... public void method2() { super.method2(); // вызов метода суперкласса } }

№4 слайд
Конструкторы суперкласса В
Содержание слайда: Конструкторы суперкласса В производном классе конструктор суперкласса, отличный от конструктора по умолчанию, должен быть вызван явно с помощью метода super(). public class Person { private String name; public Person(String name) { this.name = name; } } public class Employee extends Person { public Employee(String name) { super(name); } }

№5 слайд
Суперкласс с внутренним
Содержание слайда: Суперкласс с внутренним классом import java.awt.Color; public class Rect { class MyRect // Внутренний класс Бесцветный прямоугольник { protected int x1,y1,x2,y2; public String str = "Бесцветный"; MyRect(int x1, int y1, int x2, int y2) { this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; } public void setMyRect(int vx1, int vy1, int vx2, int vy2) { x1 = vx1; y1 = vy1; x2 = vx2; y2 = vy2; } public String toString() { String sz = "Прямоугольник: (" + x1 + ", " + y1 + ", " + x2 + ", " + y2 + ")"; return sz; } }

№6 слайд
Описание подкласса
Содержание слайда: Описание подкласса MyColorRect class MyColorRect extends MyRect { // описывает цветные прямоугольники protected Color rectColor=Color.white; public String str = "Цветной";   MyColorRect(int x1, int y1,int x2, int y2, Color colr) { super(x1, y1, x2, y2); rectColor = colr; } MyColorRect() { super(0, 0, 0, 0); } public void setColor(Color colr) { rectColor = colr; }   public String toString() // переопределяет toString() в классе MyRect { String sz = super.toString()+ rectColor.toString(); return sz; } }

№7 слайд
Создание объектов базовых и
Содержание слайда: Создание объектов базовых и производных классов public static void main(String[] args) { MyColorRect rect1 = new Rect().new MyColorRect(0, 0, 10, 20, Color.black); String szStr = rect1.toString(); System.out.println(szStr); MyColorRect rect2 =new Rect(). new MyColorRect(); String szStr2 = rect2.toString(); System.out.println(szStr2); MyRect rect; MyRect rect3=new Rect().new MyRect(1,1,2,2); rect=rect3; String szStr4 = rect.toString(); System.out.println(szStr4+rect.str+ rect.x1); rect=rect1; String szStr3 = rect.toString(); // вызывается из MyColorRect System.out.println(szStr3+ rect.str + rect.x1); } }

№8 слайд
Абстрактные классы
Содержание слайда: Абстрактные классы

№9 слайд
Приведение типов При
Содержание слайда: Приведение типов При приведении ссылочных типов действуют следующие правила: объект всегда может быть приведен к типу своего непосредственного суперкласса; приведение ссылочных типов может выполняться по иерархии наследования классов сколь угодно глубоко; любой класс ссылочного типа всегда можно привести к типу Object. После приведения объекта к типу суперкласса все переменные и методы самого класса объекта становятся недоступными для приведенного объекта. Значение простого типа не может быть присвоено значению ссылочного типа, как и значение ссылочного типа не может быть присвоено значению простого типа.

№10 слайд
Оператор instanceof С помощью
Содержание слайда: Оператор instanceof С помощью оператора instanceof можно определить Принадлежит объект указанному типу Является ли объект подклассом указанного класса Реализует ли объект интерфейс Имя объекта instanceof Имя ссылочно типа String str1; Object ObjectName; ObjectName =(Object) str1; // Приведение типа if (ObjectName instanceof String) // Проверка на совместимость String String str2 = (String) ObjectName ;

№11 слайд
Пример использования
Содержание слайда: Пример использования оператора instanceof class A { int i, j; } class B { int i, j; } class C extends A { int k; } class D extends A { int k; } class InstanceOf { public static void main(String args[]) { A a = new A(); B b = new B(); C c = new C(); D d = new D(); if (a instanceof A) System.out.println("a экземпляр A"); if (c instanceof A) System.out.println("c может приведен к A"); if (a instanceof C) System.out.println("a может приведен к C"); A ob; ob = d; // ob ссылается на А часть объекта d if (ob instanceof D) System.out.println("ob совмести с экземпляром D"); ob = c; // ob ссылается на А часть объекта с if (ob instanceof D) System.out.println("ob совмести с экземпляром D"); else System.out.println("ob не совместим с экземпляром D"); if (ob instanceof A) System.out.println("ob совместим экзпляром A"); // все объекты могут быть приведеныObject if (a instanceof Object) System.out.println(" a соместим Object"); } }

№12 слайд
Интерфейсы модификатор
Содержание слайда: Интерфейсы [модификатор] interface ИмяНовогоИнтерфейса [extends список Интерфейсов] {Тело интерфейса, состоящее из описаний абстрактных методов и констант} Интерфейс позволяет иметь различные реализации методов в разных классах и обращаться через него к объекту. Интерфейсы имеют следующие ограничения: Модификатор доступа — могут быть только public или отсутствовать (тогда, поумолчанию, интерфейс доступен только членам пакета, в котором он объявлен). Методы — могут быть только абстрактными методами; Поля — final, static (константы, не меняющие значений, такие спецификации для них назначаются автоматически, должны быть инициализированы постоянными значениями); Сами интерфейсы — не могут иметь конструкторы и реализации методов. Нельзя создать объект типа интерфейса (но можно использовать в качестве типа — интерфейсные ссылки).

№13 слайд
Интерфейсные константы
Содержание слайда: Интерфейсные константы Интерфейсы можно использовать для импорта в различные классы совместно используемых констант. public interface MyConstants          { public static final double price = 1450.00; public static final int counter = 5;          } interface MyColors { int RED = 1, YELLOW = 2, BLUE = 4; }

№14 слайд
Описание и реализация методов
Содержание слайда: Описание и реализация методов интерфейса public interface Mylnterface          { abstract public void add(int x, int y); void volume(int x,int y, int z);          } class Demo1 implements Mylnterface class Demo2 implements Mylnterface { { public void add(int x, int y) public void add(int x, int y)           { { System.out.println(      +(x+y)); System.out.println(      +(x*y));           } } public void volume(int x, int y, int z) public void volume(int x, int y, int z)           { { System.out.println(      +(x*y*z)); System.out.println(      +(x-y-z));           } } public static void main(String args[])           { Mylnterface d1= new Demo1(); Mylnterface d2= new Demo2(); d1.add(10,20); d2.add(10,20); d1.volume(10,10,10); d2.volume(10,10,10);           } }

№15 слайд
Вложенные интерфейсы Можно
Содержание слайда: Вложенные интерфейсы Можно вкладывать описание интерфейса внутрь описания класса или другого интерфейса. /описание класса class SomeClass { void MethodSomeClass(){}  //описание вложенного интерфейса interface SomeClassItf{ void SomeMethod(); } }    //описание внешнего интерфейса interface OuterInterface { void OuterInterfaceMethod();  //описание вложенного интерфейса interface InnerInterface { void InnerInterfaceMethod(); } } class A implements OuterInterface.InnerInterface, SomeClass.SomeClassItf { … // реализация InnerInterfaceMethod и SomeMethod } Использование вложенного интерфейса идет через имя внешнего класса или интерфейса: SomeClass.SomeClassItf si = new A(); si.SomeMethod(); OuterInterface.InnerInterface ii = new A(); ii.InnerInterfaceMethod();

№16 слайд
Наследование интерфейсов
Содержание слайда: Наследование интерфейсов //суперинтерфейс A interface A {  int a_value = 1;  void A(); }  //интерфейс B расширяет интерфейс А interface B extends A{  int b_value = 2;  void B(); }  //интерфейс С расширяет интерфейс В interface C extends B{  int c_value = 3;  void C(); } class Test implements C{ . . . } Test t = new Test();  t.A();  t.B();  t.C();

№17 слайд
Использование констант при
Содержание слайда: Использование констант при множественном наследовании интерфейсов public interface I1 { Double PI=3.14; } public interface I2 { Double PI=3.1415; } class C1 implements I1,I2 { void m1(){ System.out.println("I1.PI="+ I1.PI); System.out.println("I2.PI="+ I2.PI); }; } Для использования констант с одинаковыми именами из разных интерфейсов решением является квалификация имени константы именем соответствующего интерфейса

№18 слайд
Наследование интерфейсов и
Содержание слайда: Наследование интерфейсов и реализация интерфейсов

№19 слайд
Использование переменных типа
Содержание слайда: Использование переменных типа интерфейс interface Interface0 { int someField = 10; String someMethod(); } interface Interface1 { int someField = 100; String someMethod(); } interface Interface2 extends Interface0{ int someField = 200; String someMethod(); } class SomeClass implements Interface1, Interface2 { public String someMethod() { return "Метод"; } } public class Main { public static void main(String[] args) { SomeClass a = new SomeClass(); Interface1 I1=a; System.out.println( a.someMethod() ); // Метод // System.out.println( a.someField ); // ошибка System.out.println( ( (Interface1) a).someField ); // 100 System.out.println( Interface1.someField ); // 100 Interface2 I2=a; System.out.println( I2.someField ); // 200 System.out.println( I2.someMethod() ); // Метод Interface0 I0=a; System.out.println( I0.someField ); // 10 System.out.println( Interface0.someField ); // 10 } }

№20 слайд
Конфликты имен
Содержание слайда: Конфликты имен

№21 слайд
Пример конфликтов имен
Содержание слайда: Пример конфликтов имен interface I1 { void f(); } interface I2 { int f(int i); } interface I3 { int f(); } class C { public int f() { return 1; } } class C2 implements I1, I2 { public void f() {} public int f(int i) { return 1; } // перегружен } class C3 extends C implements I2 { public int f(int i) { return 1; } // перегружен } class C4 extends C implements I3 { // Одинаковы, нет проблем: public int f() { return 1; } } // Методы различаются только возвращаемым типом: class C5 extends C implements I1 {} //Ошибка interface I4 extends I1, I3 {} //Ошибка

Скачать все slide презентации Наследование классов. Спецификация базового класса. (Лекция 3) одним архивом: