一、实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty和Staff。具体要求如下:

(1)Person类中的属性有:姓名name(String类型),地址address(String类型),电话号码telphone(String类型)和电子邮件地址email(String类型);

(2)Employee类中的属性有:办公室office(String类型),工资wage(double类型),受雇日期hiredate(String类型);

(3)Faculty类中的属性有:学位degree(String类型),级别level(String类型);

(4)Staff类中的属性有:职务称号duty(String类型)。

package com.jicheng;

public class Person1 {
//属性
private String name;
private String addrees;
private String telphone;
private String email;

   public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddrees() {
return addrees;
}
public void setAddrees(String addrees) {
this.addrees = addrees;
}
public String getTelphone() {
return telphone;
}
public void setTelphone(String telphone) {
this.telphone = telphone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
} }
package com.jicheng;

public class Employee extends Person1 {
private String office;
private double wage;
private String hiredate;
public String getOffice() {
return office;
}
public void setOffice(String office) {
this.office = office;
}
public double getWage() {
return wage;
}
public void setWage(double wage) {
this.wage = wage;
}
public String getHiredate() {
return hiredate;
}
public void setHiredate(String hiredate) {
this.hiredate = hiredate;
} }
package com.jicheng;

public class Faculty extends Employee {
public String getDegree() {
return degree;
}
public void setDegree(String degree) {
this.degree=degree;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
private String degree;
private String level; }
package com.jicheng;

public class Staff extends Employee{
private String duty; public String getDuty() {
return duty;
} public void setDuty(String duty) {
this.duty = duty;
} }

测试:

package com.jicheng;

public class Test02 {

    public static void main(String[] args) {
Faculty fa=new Faculty();
fa.setName("李凯");
fa.setTelphone("18353367925");
fa.setDegree("博士");
System.out.println("姓名:"+fa.getName()+" 电话:"+fa.getTelphone()+" 学历:"+fa.getDegree()); Staff st=new Staff();
st.setName("韩如月");
st.setWage(10000);
st.setDuty("主管");
System.out.println("姓名:"+st.getName()+" 工资:"+st.getWage()+" 职位:"+st.getDuty()); } }

结果:

二、编写一个Car类,具有String类型的属性品牌,具有功能drive;定义其子类Aodi和Benchi,具有属性:价格、型号;具有功能:变速;定义主类E,在其main方法中分别创建Aodi和Benchi的对象并测试对象的特性。

public class Car {

      //品牌属性
private String pinpa;
private double sudu;
//成员方法
public String getPinpa() {
return pinpa;
} public void setPinpa(String pinpa) {
this.pinpa = pinpa;
} public double getSudu() {
return sudu;
} public void setSudu(double sudu) {
this.sudu = sudu;
} public String drive(){
return "汽车已启动!";
} }
public class Aodi extends Car{
private double jiage;
private String xinghao; public double getJiage() {
return jiage;
} public void setJiage(double jiage) {
this.jiage = jiage;
} public String getXinghao() {
return xinghao;
} public void setXinghao(String xinghao) {
this.xinghao = xinghao;
} public double biansu(){
double sudu=super.getSudu()+20;
return sudu;
} }
public class Benchi extends Aodi{
public double biansu(){
double sudu=super.getSudu()+30;
return sudu;
} }

测试:

public class E {
public static void main(String[] args){
Aodi aodi=new Aodi();
aodi.setJiage(1000000);
aodi.setXinghao("奥迪");
System.out.println("奥迪车的型号是:"+aodi.getXinghao()+" 价格是:"+aodi.getJiage());
System.out.println(aodi.drive());
System.out.println("速度为:"+aodi.biansu());

三、

按要求编写一个Java应用程序:

(1)编写一个矩形类Rect,包含:

两个属性:矩形的宽width;矩形的高height。

两个构造方法:

1.一个带有两个参数的构造方法,用于将width和height属性初化;

2.一个不带参数的构造方法,将矩形初始化为宽和高都为10。

两个方法:

求矩形面积的方法area()

求矩形周长的方法perimeter()

(2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用

矩形的左上角坐标来标识,包含:

添加两个属性:矩形左上角坐标startX和startY。

两个构造方法:

带4个参数的构造方法,用于对startX、startY、width和height属性

初始化;

不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0

的矩形;

添加一个方法:

判断某个点是否在矩形内部的方法isInside(double x,double y)。如在矩

形内,返回true, 否则,返回false。

提示:点在矩形类是指满足条件:

x>=startX&&x<=(startX+width)&&y<startY&&y>=(startY-height)

(3)编写PlainRect类的测试程序

创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;

计算并打印输出矩形的面积和周长;

判断点(25.5,13)是否在矩形内,并打印输出相关信息。

package com.jicheng;

public class Rect {
//属性
private double width;
private double height;
//有参构造方法
public Rect(double width, double height) {
super();
this.width = width;
this.height = height;
}
//无参构造方法
public Rect() {
super();
this.width=10;
this.height=10;
}
//get set
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
//面积
public double area()
{
return this.height*this.width;
}
//周长
public double perimeter()
{
return (this.height+this.width)*2;
} }
package com.jicheng;

public class PlainRect extends Rect{
private double startX;
private double startY;
//带参数构造
public PlainRect(double width, double height, double startX, double startY) {
super(width, height);
this.startX = startX;
this.startY = startY;
}
//无参构造方法
public PlainRect() {
super(0,0);
this.startX=0;
this.startY=0;
}
public double getStartX() {
return startX;
}
public void setStartX(double startX) {
this.startX = startX;
}
public double getStartY() {
return startY;
}
public void setStartY(double startY) {
this.startY = startY;
}
/***
* 判断是否在矩形内
* @param x 点x坐标
* @param y 点y坐标
* @return 是否在矩形内
*/
public Boolean isInside(double x,double y)
{
return x>=startX&&x<=(startX+getWidth())&&y<startY&&y>=(startY-getHeight());
} }

测试:

package com.jicheng;

public class Test03 {

    public static void main(String[] args) {
PlainRect pl=new PlainRect(10,20,10,10);
System.out.println("矩形面积="+pl.area());
System.out.println("矩形周长="+pl.perimeter());
System.out.println("测试点是否在矩形内:"+pl.isInside(14, 9)); } }

结果:

Java-继承 共3题的更多相关文章

  1. java继承8个题

    1.实现如下类之间的继承关系,并编写Music类来测试这些类. public class Instrument { public void play(){ System.out.println(&qu ...

  2. JAVA经典算法40题及解答

    JAVA经典算法40题 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...

  3. JAVA经典算法40题

    1: JAVA经典算法40题 2: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 3 ...

  4. JAVA经典算法40题(原题+分析)之分析

    JAVA经典算法40题(下) [程序1]   有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   1.程序分析:  ...

  5. JAVA经典算法40题(原题+分析)之原题

    JAVA经典算法40题(上) [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [程 ...

  6. JAVA经典算法50题(转)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51097928 JAVA经典算法50题 [程序1]   题目:古典问题:有一对兔子, ...

  7. JAVA经典算法40题面向过程

    JAVA经典算法40题 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...

  8. 牛客网刷题(纯java题型 31~60题)

    牛客网刷题(纯java题型 31~60题) 重写Override应该满足"三同一大一小"三同:方法名相同,参数列表相同,返回值相同或者子类的返回值是父类的子类(这一点是经过验证的) ...

  9. 牛客网刷题(纯java题型 1~30题)

    牛客网刷题(纯java题型 1~30题) 应该是先extend,然后implement class test extends A implements B { public static void m ...

  10. Java经典逻辑编程50题

    Java经典逻辑编程50题 2016-11-03 09:29:28      0个评论    来源:Alias_fa的博客    收藏   我要投稿 [程序1] 題目:古典问题:有一对兔子,从出生后第 ...

随机推荐

  1. 再次完善了 WASPCN for Matlab

    前段时间有多个网友询问在64位Matlab中如何使用WASPCN(水和蒸汽性质计算软件)的方法,一直没能给出解决方案. 最近自己有个项目也需要在64位Matlab中如何使用WASPCN(水和蒸汽性质计 ...

  2. loop 循环次数

    在汇编中可以使用 loop 段地址:偏移地址 并配合 cx 达到循环执行的目的,但是在一些资料中看到说,cx 是循环的次数,我觉得这是不对的. 比如下面这段代码的作用是使得最终的 ax 中的值为 3 ...

  3. Json数据中的特殊字符处理

    今天在项目中遇到一个问题,页面上的数据突然显示不出来了,查验后得知是Json数据出现了问题.使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错.如果内容中 ...

  4. 编译gtk+程序报错gcc: pkg-config --cflags --libs gtk+-2.0: 没有那个文件或目录

    第一次接触gtk+.在网上搜罗良一番,装好相应的库后,编写了第一hello程序.在编译时输入以下命令:gcc -o hello hello.c 'pkg-config --cflags --libs ...

  5. vc中获取磁盘IO统计计数

    想知道进程读写磁盘的情况,可以获取当前进程或指定进程的IO计数. #include <Windows.h> int get_io_bytes(ULONGLONG * read_bytes, ...

  6. NRF24L01--使用STM32F103

    看了两天的24l01的相关资料了,一直有点模糊,今天下午感觉有点懂了,在板子上调试成功了,但是还没进行通讯测试.stm32和arduino进行通信还没成功 ,:( 先把stm32的NRF24L01配置 ...

  7. Excel里内嵌在线翻译

    本来寻思着继续写点系统运行日志跟踪技术的,但早晨哥家领导从单位打来电话,让帮助她的闺蜜搞一个excel翻译的问题,总部IT搞不定.我过去是用excel做了几年工作,却都是些数学计算,跟翻译也扯不上啊: ...

  8. 如何解决SoftekBarcode.dll加载失败的问题

    本文转自:慧都控件网 Softek Barcode Reader Toolkit是专门从事于条形码读取技术的软件公司Softek旗下一款著名的条码读取工具包.最近有部分用户反映在运行此工具包时会遇到“ ...

  9. javascript练习-方法借用

    方法借用其实也可以叫做多重继承 var generic = { //返回一个字符串,这个字符串包含构造函数的名字(如果构造函数包含名字) //这个以及所有非继承来的,非函数属性的名字和值 toStri ...

  10. uva 11174 Stand in a Line

    // uva 11174 Stand in a Line // // 题目大意: // // 村子有n个村民,有多少种方法,使村民排成一条线 // 使得没有人站在他父亲的前面. // // 解题思路: ...