ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

|NO.Z.00048|——————————|BigDataEnd|——|Java&static关键字继承.V08|-------------------------------------|Java

2022-04-03 18:04:10  阅读:133  来源: 互联网

标签:Java NO int Worker System Person Z.00048 println public




[BigDataJava:Java&static关键字继承.V08]                                                                 [BigDataJava.面向对象][|章节三|static关键字和继承|方法重写的概念和使用|方法重写的原则|]








一、方法重写的概念和使用
### --- 方法重写的概念

~~~     ——>        从父类中继承下来的方法不满足子类的需求时,
~~~     ——>        就需要在子类中重新写一个和父类一样的方法来覆盖从父类中继承下来的版本,
~~~     ——>        该方式就叫做方法的重写(Override)。
二、方法重写的原则
### --- 方法重写的原则

~~~     ——>        要求方法名相同、参数列表相同以及返回值类型相同,从Java5开始允许返回子类类型。
~~~     ——>        要求方法的访问权限不能变小,可以相同或者变大。
~~~     ——>        要求方法不能抛出更大的异常(异常机制)。
三、编程代码
### --- 编程代码:编程实现Person类的封装

/*
    编程实现Person类的封装
 */
public class Person {
    
    // 1.私有化成员变量,使用private关键字修饰
    private String name;
    private int age;
    //private boolean gender; // 性别
    
    // 3.在构造方法中调用set方法进行合理值的判断
    public Person() {
        System.out.println("Person()");
    }
    public Person(String name, int age) {
        System.out.println("Person(String, int)");
        setName(name);
        setAge(age);
    }
    
    // 2.提供公有的get和set方法并在方法体中进行合理值的判断
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        if(age > 0 && age < 150) {
            this.age = age;
        } else {
            System.out.println("年龄不合理哦!!!");
        }
    }
    
    // 自定义成员方法实现特征的打印
    public void show() {
        System.out.println("我是" + getName() + ",今年" + getAge() + "岁了!");
    }
    // 自定义成员方法描述吃饭的行为
    public void eat(String food) {
        System.out.println(food + "真好吃!");
    }
    // 自定义成员方法描述娱乐的行为
    public void play(String game) {
        System.out.println(game + "真好玩!");
    }
}
四、编程代码: 自定义Worker类继承自Person类
### --- 编程代码: 自定义Worker类继承自Person类

/*
    自定义Worker类继承自Person类
 */
public class Worker extends Person {
    
    private int salary;
    
    public Worker() {
        super(); // 表示调用父类的无参构造方法,若没有加则编译器自动添加
        System.out.println("Worker()");
    }
    public Worker(String name, int age, int salary) {
        super(name, age); // 表示调用父类的有参构造方法
        System.out.println("Worker(String, int, int)");
        //setName(name);
        //setAge(age);
        setSalary(salary);
    }
    
    public int getSalary() {
        return salary;
    }
    public void setSalary(int salary) {
        if(salary >= 2200) {
            this.salary = salary;
        } else {
            System.out.println("薪水不合理哦!!!");
        }
    }
    
    // 自定义成员方法描述工作的行为
    public void work() {
        System.out.println("今天的砖头有点烫手...");
    }
    // 自定义show方法覆盖从父类中继承的版本
    @Override  // 标注/注解,用于说明下面的方法是对父类方法的重写,若没有构成重写则编译报错
    public void show() {
        super.show(); // 表示调用父类的show方法
        System.out.println("我的薪水是:" + getSalary());
    }
}
五、编程代码:编程实现Worker类的测试
### --- 编程代码:编程实现Worker类的测试

/*
    编程实现Worker类的测试
 */
public class WorkerTest {
    
    public static void main(String[] args) {
        
        // 1.使用无参方式构造Worker类型的对象并打印特征
        Worker w1 = new Worker();
        // 当子类重写show方法后,则下面调用的是重写以后的版本
        w1.show(); // null  0
        
        System.out.println("----------------------------------");
        // 2.使用有参方式构造Worker类型的对象并打印特征
        Worker w2 = new Worker("zhangfei", 30, 3000);
        w2.show(); // zhangfei ...
        // 调用成员方法测试
        w2.eat("豆芽");
        w2.play("王者荣耀");
        w2.work();
    }
}
六、编译打印
### --- 编译

C:\Users\Administrator\Desktop\project>javac WorkerTest.java
### --- 打印输出

C:\Users\Administrator\Desktop\project>java WorkerTest
Person()
Worker()
我是null,今年0岁了!
我的薪水是:0
----------------------------------
Person(String, int)
Worker(String, int, int)
我是zhangfei,今年30岁了!
我的薪水是:3000
豆芽真好吃!
王者荣耀真好玩!
今天的砖头有点烫手...








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                   ——W.S.Landor



来自为知笔记(Wiz)

标签:Java,NO,int,Worker,System,Person,Z.00048,println,public
来源: https://www.cnblogs.com/yanqivip/p/16096742.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有