Latest web development tutorials

سكالا سمة (سمة)

سكالا سمة (الخصائص) أي ما يعادل واجهة جافا، في الواقع، بل هو أقوى من واجهة أيضا.

واجهة مختلفة، فإنه يمكن تحقيق تعريف الخصائص والأساليب.

في ظل الظروف العادية يمكن أن الطبقة سكالا ترث فقط والد واحد، ولكن إذا سمة (سمة)، ثم يمكنك أن ترث متعددة، من نتائج هو تنفيذ وراثة متعددة.

معلومات سمة (سمة) مشابه لتعريف الطبقة، ولكنه يستخدمسمة رئيسية، على النحو التالي:

trait Equal {
  def isEqual(x: Any): Boolean
  def isNotEqual(x: Any): Boolean = !isEqual(x)
}

فوق سمة (سمة) مكونة منالطريقتين: ISEQUAL وisNotEqual.طريقة ISEQUAL ليس التنفيذ المحددة الأسلوب، فإنه isNotEqual تحديد طرق. لم يتم تنفيذ طريقة فرعية ترث ميزات يمكن تنفيذها. حتى في الواقع سكالا سمة (سمة) مثل جافا فئة مجردة.

توضح الأمثلة التالية ملامح كاملة:

/* 文件名:Test.scala
 * author:本教程
 * url:www.w3big.com
 */
trait Equal {
  def isEqual(x: Any): Boolean
  def isNotEqual(x: Any): Boolean = !isEqual(x)
}

class Point(xc: Int, yc: Int) extends Equal {
  var x: Int = xc
  var y: Int = yc
  def isEqual(obj: Any) =
    obj.isInstanceOf[Point] &&
    obj.asInstanceOf[Point].x == x
}

object Test {
   def main(args: Array[String]) {
      val p1 = new Point(2, 3)
      val p2 = new Point(2, 4)
      val p3 = new Point(3, 3)

      println(p1.isNotEqual(p2))
      println(p1.isNotEqual(p3))
      println(p1.isNotEqual(2))
   }
}

تنفيذ التعليمات البرمجية أعلاه، والناتج هو:

$ scalac Test.scala 
$ scala Test
false
true
true

خصائص النظام البناء

الميزة يمكن أيضا أن يكون الصانعين، وغيرها من الميزات من الجسم عن طريق التصريحات مجال التهيئة ويشكل. وسيتم تنفيذ هذه البيانات في أي كائنات مختلطة في يتميز في الهيكل.

أمر تنفيذ المنشئ:

  • استدعاء منشئ الفائقة.
  • منشئ تتميز بعد منشئ الفائقة، قبل تنفيذ منشئ فئة.
  • تم تكوين سمة من اليسار إلى اليمين.
  • كل ميزة من بين سمة الأم وبني لأول مرة.
  • إذا كان هناك العديد من الميزات بنية خصائص الوالدين، لن تتكرر سمة الأم
  • يتم تكوين كافة الميزات هي التي شيدت فرعية النهائية.

منشئ هو تسلسل خطي من الدرجة العكسية. الخطية هي لوصف نوع من جميع أنواع المواصفات التقنية الفائقة الكريمة.