一、实现一个名为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. the fifth class

      1.实际比背景长,怎么做到的? 2个父级一个做头背景一个做尾背景 2.2层,每次自带背景上下是覆盖关系,如何做到 2层?,子浮动 3.标签 4.border可覆盖:margin-bottom 为负 ...

  2. UI基础之UITableViewController相关

    1> 设置类型为Group - (instancetype)initWithStyle:(UITableViewStyle)style { return [super initWithStyle ...

  3. 导致人生失败的31种原因(转自csdn博客)

    人生的最大悲剧,就是孜孜不倦的努力却终于失败! 美国一位学者曾经分析了数千人的经历,结果是总人数的98%都是失败者.并由此归纳了人们失败的主要原因,有31种之多.当你逐项阅读它们时,要一一检查自己,以 ...

  4. (转)Linux的启动过程

    原文链接:http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html 半年前,我写了<计算机是如何启动的?>,探讨BIOS ...

  5. ServiceMix in daemon mode

    For development simplicity, we can start Karaf in daemon mode by executing 'bin\admin.bat start root ...

  6. cognos制作报表流程

    第一章 创建报表 制作ReportStudio报表,步骤如下图所示: 第二章 添加查询 1.点击中间栏的查询资源管理器,然后点击查询,就可以新建查询.步骤如下图所示: 2.点击查询出现的页面: 3.在 ...

  7. SpringAOP代理报错问题

    public class BaseDataSyncPushJob implements StatefulJob{ /*** 日志 */ private static final Log LOG = L ...

  8. 基于AutoCAD的ObjectARX之NET扩展(mcnetarx)-AcdbEntMake

    1.创建一个结果缓冲区. 2.调用AcdbEntMake创建对象. 示例: ' 创建文字实体 Dim rb As ResultBuffer = New ResultBuffer rb.Add(New ...

  9. java-android推送

    之前做的推送,考虑了很多,最后因为各个因素,选择了极光的.

  10. 解决eclipse-helios中Errors running builder JavaScript Validator的问题(转)

    原文地址:http://hi.baidu.com/%B3%BF%D1%F4%C2%FE%B2%BD/blog/item/2528f6de3ca90955ccbf1a3f.html 最近下载了eclip ...