Высокоуровневые методы информатики и программирования Лекция 1 1 - 12 Наследование классов
Интерфейсы и наследование
description
Transcript of Интерфейсы и наследование
Интерфейсы и наследование
Интерфейсы
• Объявлениеpublic interface OperateCar { // constant declarations, if any // method signatures int turn(Direction direction, double radius, double startSpeed); int changeLanes(Direction direction, double startSpeed, double endSpeed);}
• Реализацияpublic class OperateBMW760i implements OperateCar {
// the OperateCar method signatures, with implementation , for example: int signalTurn(Direction direction, boolean signalOn) {
// code to turn BMW's LEFT turn indicator lights on // code to turn BMW's LEFT turn indicator lights off
}
// other members, as needed -- for example, helper classes not // visible to clients of the interface }
Расширение
• Интерфейсовpublic interface GroupedInterface extends Interface1, Interface2, Interface3 {
// constant declarations // base of natural logarithms double E = 2.718282; // method signatures void doSomething (int i, double x); int doSomethingElse(String s);
}
Наследованиеpublic class Bicycle {
//implement}
public class MountainBike extends Bicycle { // the MountainBike subclass adds one field public int seatHeight;
// the MountainBike subclass has one constructor public MountainBike(int startHeight, int startCadence, int startSpeed, int startGear) { super(startCadence, startSpeed, startGear); seatHeight = startHeight; } }
Приведение типов
MountainBike myBike = new MountainBike(0, 0, 0, 0);Object obj = new MountainBike(0, 0, 0, 0);MountainBike myBike1 = (MountainBike)obj;if (obj instanceof MountainBike) {
MountainBike myBike2 = (MountainBike)obj;}
Полиморфизм
Демо TestBike
Final и Астрактны Классы
• Finalfinal class ChessAlgorithm {
enum ChessPlayer { WHITE, BLACK } ... final ChessPlayer getFirstPlayer() {
return ChessPlayer.WHITE; } ...
}
• Abstractpublic abstract class GraphicObject {
// declare fields // declare non-abstract methods abstract void draw();
}
Q&A