有java背景的人,很清楚java是如何定义构造方法以及继承的。在scala里面,继承和java有些相似。但是构造方法的定义,就不大一样了,应该说是差别还是很大的。在java里面,定义构造方法,就是定义一个没有返回值类型的与类同名的方法。
如下:
1 package com.shihuc; 2 3 public class Person 4 { 5 private String lastName; //姓 6 private String firstName; //名 7 private Person spouse; //配偶的Person对象 8 public Person(String fn, String ln, Person s) 9 { 10 lastName = ln; firstName = fn; spouse = s; 11 } 12 public Person(String fn, String ln) 13 { 14 this(fn, ln, null); //未婚时没有配偶 15 } 16 public String getFirstName() 17 { 18 return firstName; 19 } 20 public String getLastName() 21 { 22 return lastName; 23 } 24 public Person getSpouse() 25 { 26 return spouse; 27 } 28 public void setSpouse(Person p) 29 { 30 spouse = p; 31 } 32 public String introduction() 33 { 34 return "我的名字是," + firstName + " " + lastName + 35 (spouse != null ? 36 " 对方的名字是," + spouse.firstName + " " + spouse.lastName + " 。" : 37 " 。"); 38 } 39 }