interface Movable {
void move();
}
abstract class Automobile {
Engine engine;
Wheels[] wheels;
Gears[] gears;
abstract void move();
abstract void turn();
abstract void accelerate();
abstract void brake();
}
public abstract class MyAbstractClass {
// поля и конструкторы
// абстрактные методы
// методы с реализацией
}
public interface MyInterface {
// объявление констант
// методы без реализации
// статические методы
// методы по умолчанию (default)
// приватные методы
}
public class MyClass extends MyAbstractClass {
// реализация абстрактных методов
// иной код
}
public class MyClass implements MyInterface {
// реализация методов интерфейса
// иной код
}
class MyClass extends MyAbstractClass implements MyInterface,
MyInterface_2, MyInterface_3 {
// реализация абстрактных методов абстрактного класса
// реализация методов из интерфейсов
// иной код
}
public abstract class MyAbstractClass {
public MyAbstractClass() {
System.out.println("Конструктор из MyAbstractClass");
}
}
public class MyClass extends MyAbstractClass {
public MyClass() {
System.out.println("Конструктор из MyClass");
}
}
public class Main {
public static void main(String[] args) {
MyAbstractClass myObject = new MyClass();
}
}
public interface MyInterface {
// эта строка не скомпилируется
int value_1;
int value_2 = 1;
public final int value_3 = 1;
static int value_4 = 1;
public final static int value_5 = 1;
static final int value_6 = 1;
}
public abstract class MyAbstractClass {
int value_1;
int value_2 = 1;
private static int value_3;
final int value_4 = 1;
protected static final int value_5 = 1;
}
public interface MyInterface_2 {
void publicAbstractMethod_1();
public void publicAbstractMethod_2();
void publicAbstractMethod_3();
private void privateMethod() {
// Реализация метода
}
}
public interface MyInterface_3 {
default void defaultMethod() {
// Реализация метода
}
public default void defaultMethod_2() {
// Реализация метода
}
private static void privateStaticMethod() {
// Реализация метода
}
public static void publicStaticMethod_1() {
// Реализация метода
}
static void publicStaticMethod_2() {
// Реализация метода
}
}