当前位置: 首页 > news >正文

1.6、Java继承、构造方法、数组

  1. 子类可以增加字段、增加方法或覆盖父类方法,但继承不会删除任何字段和方法
  2. 不恰当认为super 同 this  引用是类似的概念,其实super不是一个对象的引用,不能将值super赋给另一个对象变量,super只是一个指示 编译器调用父类方法的特殊关键字
  3. this关键字,一指示隐式参数的引用,二是调用该类的其他构造器;super关键字,一是调用超类方法,二是调用超类的构造器。调用构造器语句只能作为另一个构造器的第一条语句出现。构造器参数可以传递给当前类(this)的另一个构造器,也可以传递给超类(super)的构造器。
  4. 继承不仅局限于一个层次,它可以是多层次的,树状结构。
  5. 有时候不希望定义某个类的子类,可以使用final修饰类,那就表明了这个类是final类,不能够被继承,这个类中的所有方法都自动变成final方法,不过不包括字段。如果使用final修饰方法,那么就是final方法,所有继承这个类的子类都不能覆盖这个方法。final也可以用来修饰字段,在构造对象之后,字段就不允许改变了。
  6. object是所有类的始祖,但不需要显式写出。

父类

package father_class;

import java.time.LocalDate;

public  class father_employee {
    private String name = "";
    private double salary = 0;
    private LocalDate hireDay ;

    public father_employee(String name, Integer salary, int year, int month, int day){
        this.name = name;
        this.salary = salary;
        hireDay = LocalDate.of(year,month,day);
    }

    public father_employee(){

    }

    //    调整工资
    public void modifySalary(double rate){
        salary = salary * rate;
    }

    public double printSalary(){
        return salary;
    }


    public String getName(){
        return name;
    }

    public void setName(String name ){
        this.name = name;
    }

    public double getSalary(){
        return salary;
    }

    public void setSalary(Integer salary){
        this.salary = salary;
    }

    public LocalDate getHireDay() {
        return hireDay;
    }

    public void setHireDay(LocalDate hireDay) {
        this.hireDay = hireDay;
    }
}

子类

package father_class;

public class son_manager extends father_employee {
    private Integer bonus = 0;

    /**
     *
     * @param name
     * @param salary
     * @param year
     * @param month
     * @param day
     */
//    构造方法
    public  son_manager(String name,Integer salary,int year,int month,int day,int bonus){
        super(name,salary,year,month,day);
        this.bonus = bonus;
    }

    public double getSalary(){
        return super.getSalary()+bonus;
    }

    public void setBonus(Integer bonus){
        this.bonus = bonus;
    }
    public Integer getBonus(){
        return bonus;
    }

}

测试类

package father_class;

public class test {
    public static void main(String[] args) {
//        有奖金的老板
        var boss = new son_manager("Boss", 100000, 2018, 12, 12, 3485);

//        三个员工
        var staff = new father_employee[3];
        staff[0] = boss;

//        创建两个员工
        staff[1] = new father_employee("one", 9000, 1982, 12, 3);
        staff[2] = new son_manager("Manager", 10000, 2019, 1, 1, 999);

//        打印
        for (father_employee e : staff) {
            System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());
        }


        father_employee father_1 = new father_employee();
        father_1.setName("IKUN");
        father_1.setSalary(1982);
        father_1.modifySalary(2.5);
        System.out.println("name=" + father_1.getName() + ",salary=" + father_1.getSalary());
    }
}

运行截图

相关文章:

  • 案例驱动的 IT 团队管理:创新与突破之路:第一章 重构 IT 团队管理:从传统到创新-2.1.1案例:某云计算公司技术负责人的“三维评估法“
  • 深度优先搜索(DFS)剪枝技术详解与C++实现
  • Python第五章02:函数的参数和练习
  • JavaWeb全链路学习:10、Mybatis
  • Spring(6)——Spring、Spring Boot 与 Spring MVC 的关系与区别
  • 前端组件、组件库使用指南
  • 【Linux】learning notes(4)cat、more、less、head、tail、vi、vim
  • Leetcode-2272. Substring With Largest Variance [C++][Java]
  • AI第一天 自我理解笔记--生成文本概率Top-k p 束搜索 贪心搜索温度
  • Python 鼠标轨迹算法 - 防止游戏检测
  • OSPF-4 2类LSA NetworkLSA
  • airtest用法
  • 欧税通:日本JCT标准申报的具体税率是多少?
  • N皇后问题——dfs解法(回溯+减枝+深搜)
  • Unreal Engine 5.4 (虚幻引擎5)中动画制作快捷键大全
  • 自动化测试脚本
  • 深入解析 Kubernetes Worker Node 组件
  • SpringBoot 第一课(Ⅲ) 配置类注解
  • 经历过的IDEA+Maven+JDK一些困惑
  • DNS服务器的简单搭建方法
  • 摄影网站制作/关键词seo排名怎么样
  • 公司网站建设 阜阳/百度竞价推广计划
  • 网页和网站的概念/安徽百度seo公司
  • 在线视频制作网站/站长之家点击进入
  • 手机网站案例/广州seo关键词优化外包
  • 北京ifc大厦/太原seo推广