scala 伴生对象与伴生类
1 package cn.scala_base.oop.scalaobject
2
3 import java.security.cert.Extension
4
5 /**
6 * object的构造器必须是无参的,且且构造器只会在第一次调用object时被调用
7 * 同一个scala文件下同名的object与class成为伴生对象与伴生类可以互访各自的私有field
8 */
9
10 //伴生类
11 class Person {
12 private var age: Int = 20;
13 }
14
15 //定义一个抽象类
16
17 abstract class abPerson(var message: String = "yeye") {
18 //定义一个抽象方法
19 def say(name: String): Unit;
20
21 }
22
23 //伴生对象
24 object Person extends abPerson {
25 private var name: String = "tele";
26
27 println("object Person constuctor is used");
28
29 def getName = name;
30
31 //子类重写父类的抽象方法时,不需要使用override
32 def say(name: String) = {
33 println(message + "---hello--" + name);
34 }
35 def main(args: Array[String]): Unit = {
36
37 /* println(Person.getName);
38 println(Person.getName);*/
39
40 //创建Person类的对象
41 val p = new Person;
42 //可以直接获取到
43 println(p.age);
44
45 // println(Person.say("hhhh"));
46
47 }
48 }