반응형
Dart에서 슈퍼 생성자를 어떻게 호출합니까?
Dart에서 슈퍼 생성자를 어떻게 호출합니까? 명명 된 슈퍼 생성자를 호출 할 수 있습니까?
예, 구문이 C #에 가깝습니다 . 여기에 기본 생성자와 명명 된 생성자가 모두있는 예제가 있습니다.
class Foo {
Foo(int a, int b) {
//Code of constructor
}
Foo.named(int c, int d) {
//Code of named constructor
}
}
class Bar extends Foo {
Bar(int a, int b) : super(a, b);
}
class Baz extends Foo {
Baz(int c, int d) : super.named(c, d);
}
하위 클래스에서 인스턴스 변수를 초기화 super()
하려면 이니셜 라이저 목록에서 호출이 마지막에 있어야합니다.
class CBar extends Foo {
int c;
CBar(int a, int b, int cParam) :
c = cParam,
super(a, b);
}
/ r / dartlang 에서이 super()
통화 가이드 라인 의 동기에 대해 읽을 수 있습니다 .
슈퍼 클래스의 개인 생성자를 호출 할 수 있습니까?
예,하지만 생성중인 수퍼 클래스와 서브 클래스가 동일한 라이브러리에있는 경우에만 가능합니다. (개인 식별자는 정의 된 전체 라이브러리에서 볼 수 있기 때문에). 개인 식별자는 밑줄로 시작하는 식별자입니다.
class Foo {
Foo._private(int a, int b) {
//Code of private named constructor
}
}
class Bar extends Foo {
Bar(int a, int b) : super._private(a,b);
}
인터페이스 (같은 클래스 구현 다트 지원하는 암시 적 인터페이스는 당신이있는 경우), 상위 생성자를 호출 할 수 없습니다 구현 을 당신은 사용해야 확장합니다 . 구현 을 사용 하는 경우 Eduardo Copat의 솔루션 을 확장 하고 사용 하도록 변경하십시오 .
이것은 내가 당신과 공유하는 파일입니다.있는 그대로 실행하십시오. 슈퍼 생성자를 호출하는 방법과 슈퍼 매개 변수화 된 생성자를 호출하는 방법을 배웁니다.
/ Objectives
// 1. Inheritance with Default Constructor and Parameterised Constructor
// 2. Inheritance with Named Constructor
void main() {
var dog1 = Dog("Labrador", "Black");
print("");
var dog2 = Dog("Pug", "Brown");
print("");
var dog3 = Dog.myNamedConstructor("German Shepherd", "Black-Brown");
}
class Animal {
String color;
Animal(String color) {
this.color = color;
print("Animal class constructor");
}
Animal.myAnimalNamedConstrctor(String color) {
print("Animal class named constructor");
}
}
class Dog extends Animal {
String breed;
Dog(String breed, String color) : super(color) {
this.breed = breed;
print("Dog class constructor");
}
Dog.myNamedConstructor(String breed, String color) : super.myAnimalNamedConstrctor(color) {
this.breed = breed;
print("Dog class Named Constructor");
}
}
참조 URL : https://stackoverflow.com/questions/13272035/how-do-i-call-a-super-constructor-in-dart
반응형
'programing' 카테고리의 다른 글
Maven을 사용하여 Javadoc HTML을 생성 하시겠습니까? (0) | 2021.01.15 |
---|---|
ember.js를 사용한 무한 스크롤 (지연 로딩) (0) | 2021.01.15 |
알려진 필드와 알 수없는 필드로 json 역 직렬화 (0) | 2021.01.15 |
PostgreSQL 쿼리를 사용하여 날짜를 계산 / 그룹화하고 데이터없이 날짜를 표시 (0) | 2021.01.15 |
Android의 Google지도 V2에서 자유형 다각형을 그리는 방법은 무엇입니까? (0) | 2021.01.15 |