J'étais gêné de ne pas pouvoir répondre à la spécification du langage Java lors de l'entretien, alors je vais le réapprendre.
# | interface | abstract |
---|---|---|
Caractéristiques | Utilisé lorsque vous souhaitez définir comme spécification de classe | Utilisé lorsqu'il existe une relation d'héritage et que vous souhaitez réutiliser le processus |
Relation avec la classe d'implémentation ou la classe concrète | Classe d'implémentationCANFonction abstraite | Classe de bétonISClasse abstraite |
interface
//abstrait
public interface Cashier {
void bill();
}
//Classe de mise en œuvre 1
public class CreditCart implements Cashier {
public CreditCart(){
}
@Override
public void bill(){
System.out.println("billed by credit card");
}
}
//Classe d'implémentation 2
public class Cash implements Cashier {
@Override
public void bill() {
System.out.println("billed by cash");
}
}
abstract
//Classe abstraite
public abstract class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void sleep() {
System.out.println("Sleeping");
}
public abstract void speak();
}
//Classe de mise en œuvre 1
public class Human extends Animal {
public Human(String name) {
super(name);
}
@Override
public void speak() {
System.out.println(name + " speack human languages");
}
}
//Classe d'implémentation 2
public class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void speak() {
System.out.println(name + " speack cat's language");
}
}
# | Même classe | Même paquet | Sublux | tout |
---|---|---|---|---|
default | ◯ | ◯ | - | - |
private | ◯ | - | - | - |
protected | ◯ | ◯ | ◯ | - |
public | ◯ | ◯ | ◯ | ◯ |
Recommended Posts