33_面向对象_继承

继承
* 语法
* class 子类名称(参数列表) extends 父类名称(参数列表) {}
* 说明
* 父类名称(参数列表) 决定着 父类使用哪种构造器对父类进行初始化
* 说明
* 1. 子类继承父类的 属性 和 方法 (子类及子类对象中不用声明,可以直接用)
* 2. scala是单继承
* 3. 子类创建对象时,父类及上基类都会被初始化
* 父类 主构造器带参数,那么子类也必须带参数
* 示例 ZiClass初始化 上游 FuClass 、YeClass 都会被初始化
* */
package com.dawang.scala.面向对象

/**
  * @author gaocun
  * @create 2021-10-23 10:01 AM */
object 继承_07 {
  /*
  *   继承
  *       语法
  *          class 子类名称(参数列表) extends 父类名称(参数列表) {}
  *       说明
  *          父类名称(参数列表) 决定着 父类使用哪种构造器对父类进行初始化
  *       说明
  *           1. 子类继承父类的 属性 和 方法 (子类及子类对象中不用声明,可以直接用)
  *           2. scala是单继承
  *           3. 子类创建对象时,父类及上基类都会被初始化
  *                 父类 主构造器带参数,那么子类也必须带参数
  *                 示例 ZiClass初始化 上游 FuClass 、YeClass 都会被初始化
  * */
}


package Outer {

  class YeClass() {
    var name: String = "YeClass"
    println("YeClass - 主构造器调用")

    def show = println("YeClass - show方法")
  }

  class FuClass(var id: Int) extends YeClass {

    name = "FuClass"

    // 辅助构造器
    def this(id: Int, name: String) = {
      this(10) // 调用主助构造器
      this.id = id
      this.name = name
      println("FuClass - 辅助构造器 调用")
    }

    override def show = println("FuClass 的show方法")

    println("FuClass - 主构造器调用")
  }

  class ZiClass(id: Int, name1:String) extends FuClass(id,name1) {
    name = "ZiClass"

    println("ZiClass - 主构造器调用")
  }

  // 测试对象
  object test {
    def main(args: Array[String]): Unit = {
      val obj = new ZiClass(10,"大王")
      println(obj.id)
      println(obj.name)
      obj.show
    }
  }


}

 Java-继承

import java.sql.SQLOutput;

/**
 * @author gaocun
 * @create 2021-10-23 9:05 AM
 */
public class Persion {
    int id;
    String name;

    Persion(int id, String name) {
        System.out.println("Persion - 含参构造");
    }
}

class Zi extends Persion {
    int id;
    String name;

    Zi(int id, String name) {
        super(id, name);
    }
}

/*
*  当父类只有无参数构造,子类可以使用默认的构造器(默认调super())
*  当父类只有带参数构造,子类必须使用带参构造,并手动调用super(属性)
* */

class Test {
    public static void main(String[] args) {
        System.out.println("aaa");
        new Persion(10, "大王");
        //new Persion();
    }
}

 

上一篇:python元组


下一篇:Beer Bill