3-й семестр / Лекции / 4 - Презентация 2 - ООП
.pdfЦентр дистанционного обучения
Лекция 4 Программирование на
Java
ФИО преподавателя: Зорина Наталья Валентиновна e-mail: zorina@mirea.ru,zorina_n@mail.ru
Online-edu.mirea.ru
online.mirea.ru
Центр дистанционного обучения
Тема лекции:
«ООП в Java»
online.mirea.ru
Центр дистанционного обучения
Абстрактные классы
public abstract class Shape { public abstract double getX(); public abstract double getY(); public abstract double getArea();
}
Наследование создает проблемы только при наследовании/переопределении конкретных методов (наследование реализации).
online.mirea.ru
Центр дистанционного обучения
Интерфейсы
public interface Shape { double getX(); double getY(); double getArea();
}
Интерфейсы не могут иметь полей и конкретных методов – только абстрактные методы.
online.mirea.ru
Центр дистанционного обучения
Интерфейсы
public class Circle implements Shape {
private double x;
private double y;
private double radius;
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
Shape s1 = new Circle(0, 0, 2);
online.mirea.ru
Центр дистанционного обучения
Интерфейсы
public class Rectangle implements Shape {
private double x;
private double y;
private double width;
private double height;
@Override
public double getArea() {
return width * height;
}
}
Shape s1 = new Rectangle(10, 10, 2, 1);
online.mirea.ru
Центр дистанционного обучения
Интерфейсы
public abstract class AbstractShape implements Shape {
private double x;
private double y;
protected AbstractShape(double x, double y) { this.x = x; this.y = y; }
@Override
public double getX() { return x; }
@Override
public double getY() { return y; }
}
online.mirea.ru
Центр дистанционного обучения
Интерфейсы
public class Circle extends AbstractShape implements Shape {
private double radius;
public Circle(double x, double y, double radius) {
super(x, y);
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
online.mirea.ru
Центр дистанционного обучения
Интерфейсы
Класс может наследоваться (extends) только от одного класса-предка, но реализовывать (implements) несколько интерфейсов:
class Example1 implements IBase1, IBase2 { ... } class Example2 extends Base
implements IBase1, IBase2 { ... }
online.mirea.ru
Центр дистанционного обучения
Интерфейсы
Реализация интерфейса, так же как и наследование, выражает отношение “является” (“is a”), но скорее в смысле “обладает свойством”. Так как свойств может быть много, то класс может реализовывать несколько интерфейсов.
online.mirea.ru