teilen
Code: Select all
interface Animal {
String getName();
}
class Cat implements Animal {
private final String name;
public Cat(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
@Override
public String toString() {
return "I'm a " + this.getClass().getSimpleName() + " named " + this.getName() + ".";
}
}
class Dog implements Animal {
private final String name;
public Dog(String name) {
this.name = name;
}
@Override
public String getName() {
return name;
}
@Override
public String toString() {
return "I'm a " + this.getClass().getSimpleName() + " named " + this.getName() + ".";
}
}
Code: Select all
interface Animal {
String getName();
// Following code is unfortunately invalid
@Override
default String toString() {
return "I'm a " + this.getClass().getSimpleName() + " named " + this.getName() + ".";
}
}
< /code>
Aber leider erlaubt die Sprache nicht, dass Schnittstellen eine Standardimplementierung einer überschriebenen Methode haben. Ich kann eine abstrakte AbstractAnimal