특성
특성은 Java의 인터페이스와 유사하며 특성 키워드를 사용하여 생성됩니다.
추상 클래스
추상 클래스는 자바의 추상 클래스와 유사하며 abstract 키워드를 사용하여 생성됩니다.
예시
다음은 Traits 및 Abstract Classes의 사용법을 보여주는 Scala 프로그램입니다.
trait SampleTrait { // Abstract method def test // Non-Abstract method def tutorials() { println("Traits tutorials") } } abstract class SampleAbstractClass { // Abstract method def test // Non-abstract meythod def tutorials() { println("Abstract Class tutorial") } } class Tester extends SampleAbstractClass { def test() { println("Welcome to Tutorialspoint") } } class TraitTester extends SampleTrait { def test() { println("Welcome to Tutorialspoint") } } object HelloWorld { // Main method def main(args: Array[String]) { var obj = new Tester() obj.tutorials() obj.test() var obj1 = new TraitTester() obj1.tutorials() obj1.test() } }
출력
Abstract Class tutorial Welcome to Tutorialspoint Traits tutorials Welcome to Tutorialspoint
다음은 Scala에서 Traits와 Abstract Classes 간의 중요한 차이점 중 일부입니다.
Sr. 아니요. | 키 | 특성 | 추상 클래스 |
---|---|---|---|
1 | 다중 상속 | 특성은 다중 상속을 지원합니다. | 추상 클래스는 단일 상속만 지원합니다. |
2 | 인스턴스 | 특성을 개체 인스턴스에 추가할 수 있습니다. | 추상 클래스는 개체 인스턴스에 추가할 수 없습니다. |
3 | 생성자 매개변수 | 특성은 생성자에 매개변수를 가질 수 없습니다. | 추상 클래스는 매개변수화된 생성자를 가질 수 있습니다. |
4 | 상호 운용성 | 특성은 구현이 없는 경우 Java와 상호 운용 가능합니다. | 추상 클래스는 제한 없이 자바와 상호 운용 가능합니다. |
5 | 스택 가능성 | 특성은 스택 가능하고 동적으로 바인딩됩니다. | 추상 클래스는 안정적이지 않으며 정적으로 바인딩됩니다. |