** Choisissez la description correcte de l'interface. (2) **
A. Même si le modificateur d'accès est omis, il est traité comme une méthode publique. B. Aucun champ ne peut être défini. C. La classe ne peut pas réaliser plusieurs interfaces en même temps. D. Les interfaces ne peuvent pas être héritées. E. Les classes abstraites n'ont pas à implémenter les méthodes définies dans l'interface
La réponse est ** AE **
A. Même si le modificateur d'accès est omis, il est traité comme une méthode publique. ... Correct, vous ne pouvez pas utiliser protégé ou privé pour l'interface. B. Aucun champ ne peut être défini. ... Mauvaise réponse, rendue possible en utilisant final et statique dans les spécifications de JAVASE8. C. La classe ne peut pas réaliser plusieurs interfaces en même temps. ... Mauvaise, l'interface Java est là pour résoudre les problèmes d'héritage tels que l'héritage de diamant C ++. Au lieu de la classe interdisant l'héritage multiple, l'interface le permet. D. Les interfaces ne peuvent pas être héritées. ・ ・ ・ Mauvaise réponse, il est possible d'hériter de l'interface. E. Les classes abstraites n'ont pas à implémenter les méthodes définies dans l'interface ... Bonne réponse, il n'y a pas de problème si vous en héritez et entrez toutes les instances qui seront finalement réalisées.
Pensons à cela comme TypeScript.
** A. Même si le modificateur d'accès est omis, il est traité comme une méthode publique. ** ** Dans js, si le modificateur d'accès est omis, il sera traité comme public en java. Puisque dactylographié est compatible avec js, le fait d'omettre le modificateur d'accès le rendra accessible de n'importe où.
** B. Aucun champ ne peut être défini. ** **
typescript.ts
interface MyInterface{
name:string
}
class MyClass implements MyInterface{
name:string;//Si ce membre n'existe pas, une erreur de compilation se produira.
constructor(name: string) {
this.name = name;
}
}
var obj:MyClass = new MyClass("masao");
var str:string = obj.name;
console.log(str);//Afficher comme masao
Après compilation
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); //Afficher comme masao
Il est possible de compiler normalement même si vous spécifiez le champ.
** C. La classe ne peut pas réaliser plusieurs interfaces en même temps. ** **
TypeScript.ts
interface MyInterface{
name:string;
}
interface MyInterface2{
family:string;
}
class MyClass implements MyInterface,MyInterface2{
name:string;//Si ce membre n'existe pas, une erreur de compilation se produira.
family:string;//Si ce membre n'existe pas, une erreur de compilation se produira.
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);//S'affiche comme masao yamada
Après compilation
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); //S'affiche comme masao yamada
Même si vous réalisez plusieurs interfaces, vous pouvez compiler normalement.
** D. L'interface ne peut pas être héritée. ** **
typeScript
interface MyInterface{
name:string;
}
interface MyInterface2 extends MyInterface{
family:string;
}
class MyClass implements MyInterface2{
name:string;//Si ce membre n'existe pas, une erreur de compilation se produira.
family:string;//Si ce membre n'existe pas, une erreur de compilation se produira.
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);//S'affiche comme masao yamada
Après compilation
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); //S'affiche comme masao yamada
Même si l'interface hérite, elle se compilera sans aucun problème.
** E. Les classes abstraites n'ont pas à implémenter les méthodes définies dans l'interface ** TypeScript n'a pas de classes abstraites.
Recommended Posts