java继承的举例_java继承实例

实例需求:实现一个名为Person的类和它的子类Employee,Manager是Employee的子类,设计一 个类Add()用于涨工资,普通员工一次能涨10%,经理能涨20%。

具体要求如下:

(1)Person类中的属性有:姓名name String(类型),地址address(String类型),定义该类的构造方法;(2)Employee 类中的属性有:工号ID(String类型),工资wage(double类型),工龄(int 型),定义该类的构造方法;

(3)Manager类中的属性有:级别level(String类型)定义该类的构造方法;

(4)编写一个测试类,产生一个员工和一个经理,给该员工和经理涨工资。

1、利用继承的特性

当子类没有相应的成员方法时,调用父类的同名方法。

Person.java

package person_employee;

public class Person {

private String name = "";

private String address = "";

//定义构造方法

public Person(String name, String address){

this.name = name;

this.address = address;

}

}

Employee.java

package person_employee;

// 继承Person类

public class Employee extends Person {

private String ID = "";

private double wage = 0;

private int age = 0;

public Employee(String name, String address, String ID, double wage, int age){

super(name, address); //调用父类的构造方法

this.ID = ID;

this.wage = wage;

this.age = age;

}

public double add(String position){// 判断职位

if(position == "0"){

wage = wage*1.2;

}

else{

wage = wage*1.1;

}

return wage;

}

//设置get/set方法

public double getWage() {

return wage;

}

public void setWage(double wage) {

this.wage = wage;

}

}

Manager.java

package person_employee;

//继承Employee类

public class Manager extends Employee{

private String level = ""; //1为普通员工,0为经理

public Manager(String name, String address, String ID, double wage, int age, String level){

super(name, address, ID, wage, age);

this.level = level;

}

//设置get/set方法

public String getLevel() {

return level;

}

public void setLevel(String level) {

this.level = level;

}

}

Test.java

package person_employee;

public class Test {

public static void main(String[] args) {

// 新建对象

Manager normal = new Manager("wsl", "jit", "12", 1000, 2, "1");

Manager manager = new Manager("ctl", "jitt", "123", 10000, 10, "0");

// 传入职位,Manager类型的对象没有add()方法,所以自动搜寻其父类,调用add()方法

normal.add(normal.getLevel());

manager.add(manager.getLevel());

System.out.println("normal wage is:"+normal.getWage());

System.out.println("manager wage is:"+manager.getWage());

}

}

打印结果:

b9f677f1bc73

打印结果

2、定义抽象类

定义抽象类,在子类中实现不同的抽象方法。

Person.java

package person_employee;

public class Person {

private String name = "";

private String address = "";

//定义构造方法

public Person(String name, String address){

this.name = name;

this.address = address;

}

}

Employee.java

package person_employee;

public abstract class Employee extends Person {

private String ID = "";

private double wage = 0;

private int age = 0;

public Employee(String name, String address, String ID, double wage, int age){

super(name, address);

this.ID = ID;

this.wage = wage;

this.age = age;

}

//定义抽象方法

public abstract void add(String position);

//设置get/set方法

public double getWage() {

return wage;

}

public void setWage(double wage) {

this.wage = wage;

}

}

Manager.java

package person_employee;

public class Manager extends Employee{

private String level = "";

public Manager(String name, String address, String ID, double wage, int age, String level){

super(name, address, ID, wage, age);

this.level = level;

}

//实现抽象方法

public void add(String position){

double wage = super.getWage();

if(position == "0"){

super.setWage(wage*1.2);

}

else{

super.setWage(wage*1.1);;

}

}

public String getLevel() {

return level;

}

public void setLevel(String level) {

this.level = level;

}

}

Test.java

package person_employee;

public class Test {

public static void main(String[] args) {

Manager normal = new Manager("wsl", "jit", "12", 1000, 2, "1");

Manager manager = new Manager("ctl", "jitt", "123", 10000, 10, "0");

normal.add(normal.getLevel());

manager.add(manager.getLevel());

System.out.println("normal wage is:"+normal.getWage());

System.out.println("manager wage is:"+manager.getWage());

}

}

打印结果一样。

3、在2的基础上利用多态实现方法的重载

Manager.java

package person_employee;

public class Manager extends Employee{

private String level = "";

public Manager(String name, String address, String ID, double wage, int age, String level){

super(name, address, ID, wage, age);

this.level = level;

}

//实现抽象方法

public void add(){

double wage = super.getWage();

super.setWage(wage*1.1);

}

public void add(String position){

double wage = super.getWage();

super.setWage(wage*1.2);

}

public String getLevel() {

return level;

}

public void setLevel(String level) {

this.level = level;

}

}

Test.java

package person_employee;

public class Test {

public static void main(String[] args) {

Manager normal = new Manager("wsl", "jit", "12", 1000, 2, "1");

Manager manager = new Manager("ctl", "jitt", "123", 10000, 10, "0");

normal.add();

manager.add(manager.getLevel());

System.out.println("normal wage is:"+normal.getWage());

System.out.println("manager wage is:"+manager.getWage());

}

}

打印结果一样

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

与狼共舞的女钢琴家

刚看了法国传奇女钢琴家埃莱娜格里莫的自传《野变奏》(上海教育出版社出版),很精彩。我有幸收藏到她几张原版的唱片,经常会拿出来听听。她是我喜欢的哈斯基尔、阿格里奇和皮雷斯等女钢琴家之后,我所知道的最年轻的女钢…

究竟谁在买书??

今天和孩子去美术馆附近的百花美术商店买绘画用品&#xff0c;顺便到了三联奋图书中心。<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />几年来&#xff0c;我对去书店是非常矛盾的。读点书的人&#xff0c;不去书店淘书显然有愧…

java 使用string_java中string怎么使用

展开全部以下是关于string的七种用法&#xff0c;注意哦&#xff0c;记得要时常去查看java的API文档&#xff0c;那个里面也有很详细32313133353236313431303231363533e78988e69d8331333363393033的介绍1>获取1.1&#xff1a;字符串中包含的字符数&#xff0c;也就是字符串的…

情人节的第一道小点心

情人节“蕉叶”泰国餐厅的第一道小点心&#xff0c;用芭蕉叶包的西米露甜点&#xff0c;乍看像两个蜡烛&#xff0c;一黄一白&#xff0c;细看又似两个人的皮肤&#xff0c;一深一淡。绵软、清凉&#xff0c;入口即融&#xff0c;妙不必言。

与孩子去航空博物馆

北京航空博物馆草地广场——主题&#xff1a;四面楚歌&#xff0c;草木皆兵&#xff0c;红装小女&#xff0c;信步闲庭。航空博物馆的一个角落——主题&#xff1a;灰色里的一点红&#xff0c;肃杀中的一抹暖意

java 操作序列_JAVA序列化操作详解

一、概述很多时候我们需要将对象的信息以文件的形式存储到硬盘上以便以后可以恢复使用。我们可以按照一定的格式将变量的值依次写到特定格式的文件中。但有时候我们希望只有我们自己可以读懂它并且修改它&#xff0c;这就是序列化的作用。概念&#xff1a;将对象转化为字节序列…

为女儿示范的两张石膏像素描

26年没画了&#xff0c;为了给女儿学习石膏素描&#xff0c;示范一下&#xff0c;斗胆画了两张。材料&#xff1a;复印纸&#xff0c;4B铅笔&#xff0c;用时30分钟。这是一周前画的。材料&#xff1a;普通稿纸&#xff0c;2B铅笔&#xff0c;用时25分钟。用我当时少年宫美术老…

你好,弗朗索瓦丝·萨冈

“世界上只有两种东西最出名&#xff0c;新小说和萨冈。萨冈是个作家&#xff0c;是法国的通俗小说家&#xff0c;世界上所有的国家都翻译了她的作品。”“新小说”派的掌门人罗伯-格里耶如是说。格里耶肯定不喜欢萨冈&#xff0c;但是他所鼓吹的“新小说”绝对没有萨冈有名。一…

java中类与类的关系_Java中类与类的关系

在java中类和类的关系大致分三种&#xff1a;泛化、关联、依赖。1. 泛化(Generalization)"XX是一个XX"关系(is a),通常使用的关键词为 extends、implements继承:继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类&#xff0c;新的类能吸收已有类的数据…

徐坤用话剧震了我们一道

年前&#xff0c;徐坤为人艺小剧场写了个话剧《性情男女》&#xff0c;请几个朋友去看&#xff0c;要求是必须携夫人或者女朋友前往。我开始没明白她的用意&#xff0c;就带女朋友去了。剧场门口&#xff0c;徐坤穿着小红羽绒袄诡秘地迎接我们。 当我走进小剧场时&#xff0c;一…

《命犯桃花》离斯蒂芬·金还很遥远

期待已久的丁天的新书《命犯桃花》&#xff08;北方文艺出版社2006年2月&#xff09;终于出版了。在这之前他的2000年的旧作《脸》也刚刚修订再版。《脸》作为国内恐怖小说的开先河之作&#xff0c;在当时产生了很大的影响&#xff0c;甚至可以说影响了现在的一批恐怖小说作家。…

java spring redis_spring配置redis(xml+java方式)

条件&#xff1a;引用好架包org.springframework.dataspring-data-redis2.1.3.RELEASEredis.clientsjedis2.9.0一、使用xml进行配置1、创建xml文件2、使用&#xff1a;ApplicationContext applicationContext new ClassPathXmlApplicationContext("application.xml"…

我们需要什么样的恐怖小说?

斯蒂芬金漫画像 ——由台湾的两部有影响的恐怖小说谈起 台湾的恐怖悬疑类小说的发展比大陆早若干年&#xff0c;原本以为他们会写的好一些&#xff0c;可看了两本部曾被台湾书界追捧的恐怖小说&#xff0c;感觉非常失望。一本是《网络凶邻》&#xff08;作家出版社2006年2月出版…

男人是消耗品,女人是战利品?

读日本作家村上龙的随笔《所有的男人都是消耗品》&#xff08;上海译文出版社2006年2月出版&#xff09;,感觉颇有意趣。村上龙与另个村上&#xff08;春树&#xff09;几乎同龄&#xff0c;是日本战后经济高速发展时期成名的作家&#xff0c;在文坛并称“W村上”。两人虽是好友…

看“意大利文艺复兴艺术展”(1)

带女儿去中华世纪坛&#xff0c;看了“意大利文艺复兴艺术展”&#xff0c;展览管理非常严格&#xff0c;不许带包&#xff0c;不许拍照&#xff0c;进场时要经过类似机场的检查。不过&#xff0c;我偷拍了几张照片。。。。。帕拉德与人头马   波提切利 画

java 什么是servlet_JavaWeb解释一下什么是 servlet?

Servlet是一种独立于平台和协议的服务端的java技术&#xff0c;可以生成动态WEB页面与传统的CGI(计算机图形接口)和其他类似的CGI技术相比。Servlet具有更好的可移植性。更强大的功能&#xff0c;更少的投资&#xff0c;更高的效率&#xff0c;更好的安全性。servlet是使用java…

看“意大利文艺复兴艺术展”(3)

手提哥利亚头的大卫 卡拉瓦乔 画看着那些过去只能在画册上见到的名画&#xff0c;看着画面上岁月留下的细细的裂纹&#xff0c;感觉这些大师就像小时候常说的——“远在天边&#xff0c;近在眼前”。看来画一定要近距离的观赏才是&#xff0c;尤其是大师的作品。那些大面积…

《书店》:一本平凡的小书

《书店》是一本平凡的小书&#xff0c;它出自英国女作家佩内洛普菲兹杰拉德之手。她60岁才开始写作&#xff0c;一生写了9本书&#xff0c;却有3本入围英国布克奖&#xff0c;终有一本获奖。评论界对她的评价是&#xff1a;“看不出惊世骇俗的野心&#xff0c;写人写事闲闲道来…

你的眼睛已经睁开了!(转)

《映像PHOTO》杂志——卷首语   那日松/文 贴者按&#xff1a;这张旧照片和弟弟的文章勾起了我许多往事的回忆&#xff0c;30年弹指一挥间&#xff0c;没想到我们也到回忆的年龄。记忆真是个奇怪的东西&#xff0c;年轻时你在拼命寻找它&#xff0c;就像寻找爱情和人生&#…

java知识点_java知识点

hashtable和hashmap&#xff1a;hashtable的key和value不允许为null&#xff0c;hashmap的key和value可以为nullhashtable的方法是Synchronized&#xff0c;hashmap没有&#xff0c;是非线程安全的&#xff0c;线程不安全的hashmap采用的是快速失败机制(线程不安全的集合对象在…