** Wählen Sie die richtige Beschreibung für die Schnittstelle. (2) **
A. Auch wenn der Zugriffsmodifikator weggelassen wird, wird er als öffentliche Methode behandelt. B. Es können keine Felder definiert werden. C. Die Klasse kann nicht mehrere Schnittstellen gleichzeitig realisieren. D. Schnittstellen können nicht vererbt werden. E. Abstrakte Klassen müssen die in der Schnittstelle definierten Methoden nicht implementieren
Die Antwort lautet ** AE **
A. Auch wenn der Zugriffsmodifikator weggelassen wird, wird er als öffentliche Methode behandelt. ... Richtig, Sie können nicht geschützt oder privat für die Schnittstelle verwenden. B. Es können keine Felder definiert werden. ... Falsche Antwort, ermöglicht durch die Verwendung von final und static in den Spezifikationen von JAVASE8. C. Die Klasse kann nicht mehrere Schnittstellen gleichzeitig realisieren. ... Eine falsche Java-Schnittstelle dient zur Lösung von Vererbungsproblemen wie der Vererbung von C ++ - Diamanten. Anstelle der Klasse, die Mehrfachvererbung verbietet, erlaubt die Schnittstelle dies. D. Schnittstellen können nicht vererbt werden. ・ ・ ・ Falsche Antwort, es ist möglich, die Schnittstelle zu erben. E. Abstrakte Klassen müssen die in der Schnittstelle definierten Methoden nicht implementieren ... Richtige Antwort, es gibt kein Problem, wenn Sie sie erben und alle Instanzen eingeben, die endgültig realisiert werden.
Betrachten wir dies als TypeScript.
** A. Auch wenn der Zugriffsmodifikator weggelassen wird, wird er als öffentliche Methode behandelt. ** ** ** Wenn in js der Zugriffsmodifikator weggelassen wird, wird er in Java als öffentlich behandelt. Da Typoskript mit js kompatibel ist, kann es durch Weglassen des Zugriffsqualifizierers von überall zugänglich gemacht werden.
** B. Es können keine Felder definiert werden. ** ** **
typescript.ts
interface MyInterface{
name:string
}
class MyClass implements MyInterface{
name:string;//Wenn dieses Mitglied nicht vorhanden ist, tritt ein Kompilierungsfehler auf.
constructor(name: string) {
this.name = name;
}
}
var obj:MyClass = new MyClass("masao");
var str:string = obj.name;
console.log(str);//Anzeige als masao
Nach der Kompilierung
typescript.ts
var MyClass = (function () {
function MyClass(name) {
this.name = name;
}
return MyClass;
}());
var obj = new MyClass("masao");
var str = obj.name;
console.log(str); //Anzeige als masao
Es ist möglich, normal zu kompilieren, auch wenn Sie das Feld angeben.
** C. Klasse kann nicht mehrere Schnittstellen gleichzeitig realisieren. ** ** **
TypeScript.ts
interface MyInterface{
name:string;
}
interface MyInterface2{
family:string;
}
class MyClass implements MyInterface,MyInterface2{
name:string;//Wenn dieses Mitglied nicht vorhanden ist, tritt ein Kompilierungsfehler auf.
family:string;//Wenn dieses Mitglied nicht vorhanden ist, tritt ein Kompilierungsfehler auf.
constructor(name: string,family: string) {
this.name = name;
this.family = family;
}
}
var obj:MyClass = new MyClass("masao","yamda");
var str:string = obj.name + obj.family;
console.log(str);//Wird als Masao Yamada angezeigt
Nach der Kompilierung
javascript.js
var MyClass = (function () {
function MyClass(name, family) {
this.name = name;
this.family = family;
}
return MyClass;
}());
var obj = new MyClass("masao", "yamda");
var str = obj.name + obj.family;
console.log(str); //Wird als Masao Yamada angezeigt
Selbst wenn Sie mehrere Schnittstellen realisieren, können Sie normal kompilieren.
** D. Schnittstelle kann nicht vererbt werden. ** ** **
typeScript
interface MyInterface{
name:string;
}
interface MyInterface2 extends MyInterface{
family:string;
}
class MyClass implements MyInterface2{
name:string;//Wenn dieses Mitglied nicht vorhanden ist, tritt ein Kompilierungsfehler auf.
family:string;//Wenn dieses Mitglied nicht vorhanden ist, tritt ein Kompilierungsfehler auf.
constructor(name: string,family: string) {
this.name = name;
this.family = family;
}
}
var obj:MyClass = new MyClass("masao","yamda");
var str:string = obj.name + obj.family;
console.log(str);//Wird als Masao Yamada angezeigt
Nach der Kompilierung
JavaScript.js
var MyClass = (function () {
function MyClass(name, family) {
this.name = name;
this.family = family;
}
return MyClass;
}());
var obj = new MyClass("masao", "yamda");
var str = obj.name + obj.family;
console.log(str); //Wird als Masao Yamada angezeigt
Selbst wenn die Schnittstelle erbt, wird sie problemlos kompiliert.
** E. Abstrakte Klassen müssen die in der Schnittstelle definierten Methoden nicht implementieren ** TypeScript hat keine abstrakten Klassen.
Recommended Posts