Интерфейсы и наследование
Интерфейсы Объявление 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 = ; // 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 и Астрактны Классы Final final class ChessAlgorithm { enum ChessPlayer { WHITE, BLACK }... final ChessPlayer getFirstPlayer() { return ChessPlayer.WHITE; }... } Abstract public abstract class GraphicObject { // declare fields // declare non-abstract methods abstract void draw(); }
Q&A