Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa Đặc điểm và Lớp trừu tượng trong Scala.

Đặc điểm

Các đặc điểm tương tự như giao diện trong Java và được tạo bằng từ khóa đặc điểm.

Lớp Tóm tắt

Lớp trừu tượng tương tự như các lớp trừu tượng trong Java và được tạo bằng từ khóa trừu tượng.

Ví dụ

Sau đây là chương trình trong Scala để hiển thị cách sử dụng các Đặc điểm và Lớp Tóm tắt.

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()
   }
}

Đầu ra

Abstract Class tutorial
Welcome to Tutorialspoint
Traits tutorials
Welcome to Tutorialspoint

Sau đây là một số khác biệt quan trọng giữa Đặc điểm và Lớp trừu tượng trong Scala.

Sr. Không. Phím Đặc điểm Lớp Tóm tắt
1 Đa kế thừa Trait hỗ trợ đa kế thừa. Lớp trừu tượng chỉ hỗ trợ kế thừa đơn.
2 Phiên bản Đặc điểm có thể được thêm vào một phiên bản đối tượng. Lớp trừu tượng không thể được thêm vào một cá thể đối tượng.
3 Tham số cấu tạo Trait không được có tham số trong các hàm tạo của nó. Lớp trừu tượng có thể có hàm tạo được tham số hóa.
4 Khả năng tương tác Các đặc điểm có thể tương tác với java nếu chúng không có bất kỳ triển khai nào. Các lớp trừu tượng có thể tương tác với java mà không có bất kỳ hạn chế nào.
5 Tính ổn định Các đặc điểm có thể xếp chồng lên nhau và được liên kết động. Các lớp trừu tượng không thể sắp xếp và bị ràng buộc tĩnh.