Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

스칼라의 특성과 추상 클래스의 차이점.

<시간/>

특성

특성은 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 스택 가능성 특성은 스택 가능하고 동적으로 바인딩됩니다. 추상 클래스는 안정적이지 않으며 정적으로 바인딩됩니다.