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 }

 

相关文章:

  • 2022-12-23
  • 2021-09-02
  • 2021-12-03
  • 2022-12-23
  • 2019-03-04
  • 2022-12-23
  • 2022-12-23
  • 2021-08-20
猜你喜欢
  • 2021-12-17
  • 2018-08-19
  • 2021-06-16
  • 2022-12-23
  • 2021-12-14
  • 2021-11-03
相关资源
相似解决方案