홈>
배수를 곱한 추상 클래스가 있습니다 :
abstract class Animal(var name: String, var age: Int, var mother: Animal,
var father: Animal, var friends: ArrayList<Animal>)
이제 짐작할 수 있듯이 Animal에서 파생 된 'Cat', 'Dog', 'Parrot'등의 클래스를 만들고 싶습니다.
그러나 Cat 클래스를 정의 할 때 이름, 연령, ... 필드가 무엇인지 모르므로 코드가 컴파일되지 않습니다.
class Cat : Animal()
아직 알지 못하는 변수를 여기에 전달해야하므로 컴파일하지 않습니다.
또 다른 질문은 : 수업 내에서 내부 수업을 시작하는 방법? 고양이는 고양이 인 어머니와 아버지가 있습니다.
- 답변 # 1
- 답변 # 2
컨스트럭터없이 Animal 클래스를 지정하고 하위 유형에서만 생성자를 정의 할 수 있습니다
abstract class Animal { var name = "" var age = 0 lateinit var mother: Animal lateinit var father: Animal lateinit var friends: ArrayList<Animal> } class Cat: Animal { // only initialize the fields you need for this specific type constructor(n: String) { name = n } // define a second constructor for your second question constructor(m: Animal, f: Animal) { mother = m father = f } }
- 답변 # 3
부수적으로, 제네릭을 사용하여 범위를 도울 수 있습니다
예 :
abstract class Animal<T : Animal<T>>( var name: String, var age: Int, var mother: T, var father: T, var friends: MutableList<Animal> ) class Cat( name: String, age: Int, mother: Cat, father: Cat, friends: MutableList<Animal> ) : Animal<Cat>(name, age, mother, father, friends)
관련 자료
- android - kotlin에서 jave 추상 클래스의 객체 정의
- 추상 클래스에서 값을 다시 개체로 변환하는 C #
- typescript - 추상 클래스 및 익스텐더 유형
- c++ - 추상 클래스의 동적 배열
- python - 추상 Enum 클래스 만들기
- java - Kotlin 주 클래스를 찾거나로드 할 수 없습니다
- php - 추상 클래스 호출은 생성자에서 자식 값을 어떻게 얻습니까?
- generics - 콜백에서 구체적 클래스를 사용하는 리스너가있는 추상 Java 클래스
- 클래스를 구현하는 다트도 필드를 상속합니까?
- android - Kotlin에서 패키지 이름이 잘못되었을 때 클래스가 컴파일되는 이유는 무엇입니까?
- object - 자식 클래스의 인스턴스에서 추상 클래스에 대한 포인터가 있는지 묻기 위해 무엇을해야합니까?
- 클래스 상속 및 정적 메소드의 유형 스크립트 오류
- c++ - 템플릿을 전문화하면서 기본 클래스에서 클래스 템플릿을 상속받는 올바른 방법
- 파이썬에서 자식 클래스를 선택적으로 상속
- 타입 스크립트 - 추상 클래스를 확장 할 때 'this'
- java - 이 클래스와 같은 오류 메시지가 나타나는 이유를 모르겠습니다 추상 메소드 오류를 무시하지 않습니다
- c++14 - c ++ - 멤버 함수를 템플릿 인수로 사용하여 기본 클래스에서 상속
- unit testing - 코 틀린 봉인 클래스 및 형식 유추
- java - 기본 클래스 (싱글 톤이 아닌 클래스)로 싱글 톤 클래스를 상속받을 수 있습니까? 그렇다면 좋은 습관입니까?
- Gradle에서 코드 생성 작업 전에 하나의 Kotlin 클래스를 컴파일하는 방법
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
상속에 관한 문서를 확인하십시오
기본 생성자가 있으므로 매개 변수를
super
에 전달해야합니다. :