2017-10-04 2 views
1

링크에서 http://www.scala-lang.org/old/node/117왜 특성이 추상 클래스를 확장 할 수 있습니까?

이것은 특성이 추상 클래스를 확장하는 예를 제공합니다. 추상 클래스에는 생성자가 있으므로 어떻게 될 수 있습니까? 추상적 인 계급과 형질이 같은 위치에 있다는 것을 의미합니까?

+0

https://stackoverflow.com/questions/12854941/why-can-a-scala-trait-extend-a-class 이것은 추상 클래스와 관련이 있습니다. –

답변

1

이들은 인터페이스, 필드 및 클래스 간의 유형을 공유하기위한 것이며 둘 다 인스턴스화 할 수 없습니다. 그리고 추상 클래스는 특성을 확장하고 그 반대도 마찬가지입니다. 내가 처음에 언급 한 것처럼 스칼라의 클래스는 단 하나의 슈퍼 클래스,

abstract class A 
abstract class B 
trait AA extends A 
class C extends AA // ok class C's super class is A 
class C extends B with AA // NG trying to have 2 super class 

을 확장 할 수 있기 때문에 는하지만, 그들은 비 instantiatable 있습니다. 그래서 추상 클래스의 생성자는 신경 쓸 필요가 없습니다. 확장하는 클래스가 생성되어 인스턴스화 될 때 호출됩니다.

관련 문제