Es war mir peinlich, dass ich die Java-Sprachspezifikation beim Interview nicht beantworten konnte, deshalb werde ich sie neu lernen.
# | interface | abstract |
---|---|---|
Spezifikationen | Wird verwendet, wenn Sie eine Klassenspezifikation definieren möchten | Wird verwendet, wenn eine Vererbungsbeziehung besteht und Sie den Prozess wiederverwenden möchten |
Beziehung zur Implementierungsklasse oder konkreten Klasse | ImplementierungsklasseCANAbstrakte Funktion | Konkrete KlasseISAbstrakte Klasse |
interface
//abstrakt
public interface Cashier {
void bill();
}
//Implementierungsklasse 1
public class CreditCart implements Cashier {
public CreditCart(){
}
@Override
public void bill(){
System.out.println("billed by credit card");
}
}
//Implementierungsklasse 2
public class Cash implements Cashier {
@Override
public void bill() {
System.out.println("billed by cash");
}
}
abstract
//Abstrakte Klasse
public abstract class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void sleep() {
System.out.println("Sleeping");
}
public abstract void speak();
}
//Implementierungsklasse 1
public class Human extends Animal {
public Human(String name) {
super(name);
}
@Override
public void speak() {
System.out.println(name + " speack human languages");
}
}
//Implementierungsklasse 2
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void speak() {
System.out.println(name + " speack cat's language");
}
}
# | Selbe Klasse | Gleiches Paket | Sublux | alles |
---|---|---|---|---|
default | ◯ | ◯ | - | - |
private | ◯ | - | - | - |
protected | ◯ | ◯ | ◯ | - |
public | ◯ | ◯ | ◯ | ◯ |
Recommended Posts