java继承题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.写一个Java应用程序,主要是体现父类子类间的继承关系。父类:鸟,子类:麻雀、鸵鸟、鹰。子类继承父类的一些特点,如都是鸟的话就都会有翅膀、两条腿等,但它们各自又有各自的特点,如麻雀的年龄、体重;鸵鸟的身高、奔跑速度;鹰的捕食、飞翔高度等。

package sudy;

public class Bird {
public void niaoxinxi() {
System.out.println("我能飞!");
System.out.println("我有两条腿!");
}

}
麻雀
package sudy;

public class MaQue extends Bird {
private int nianling;
private int tizhong;

public MaQue(int nianling, int tizhong) {
this.nianling = nianling;
this.tizhong = tizhong;
}

public void name() {
System.out.println("我是麻雀!");

}

public void shuchu() {
System.out.println("我的年龄是:" + nianling + "岁");
System.out.println("我的体重是: " + tizhong + "斤");
}

}
鸵鸟
package sudy;

public class TuoNiao extends Bird {
private int shengao;
private int sudu;

public TuoNiao(int shengao, int sudu) {
this.shengao = shengao;
this.sudu = sudu;
}

public void name() {
System.out.println("我是鸵鸟!");
}

public void shuchu() {
System.out.println("我的身高是:" + shengao + "m");
System.out.println("我的速度是:" + sudu + "m/s");
}

}

package sudy;

public class Ying extends Bird {
private String pushi;
private int flygaodu;

public Ying(String pushi, int flygaodu) {
this.pushi = pushi;
this.flygaodu = flygaodu;
}

public void name() {
System.out.println("我是鹰!");
}

public void shuchu() {
System.out.println("我的扑食方式是:" + pushi);
System.out.println("我的飞行高度是:" + flygaodu + "m");
}

}
测试
package sudy;

public class BirdTxet {

public static void main(String[] args) {
// TODO Auto-generated method stub
MaQue mq = new MaQue(2, 12);
Ying y = new Ying("爪子抓", 300);
TuoNiao tn = new TuoNiao(11, 23);
();
mq.niaoxinxi();
mq.shuchu();
();
mq.niaoxinxi();
y.shuchu();
();
mq.niaoxinxi();
tn.shuchu();
}

}

2.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty和Staff。具体要求如下:
(1)Person类中的属性有:姓名name(String类型)、地址address(String类型)、电话号码telephone(String类型)和电子邮件地址email(String类型)。
package sudy;

public class Person {
private String name;
private String address;
private String telephone;
private String email;

public Person() {

}

public Person(String name, String address, String telephone, String email) {
= name;
this.address = address;
this.telephone = telephone;
this.email = email;
}

}

(2)Employee类中的属性有:办公室office(String类型)、工资wage(double

类型)和受雇日期hiredate(String类型)。
package sudy;

public class Employee extends Person {
private String office;
private double wage;
private String hiredate;
}

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

public class Faculty extends Employee {
private String degree;
private String level;
}

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

public class Staff extends Employee {
private String duty;
}

3.在包a中编写一个类Father,具有属性:年龄(私有)、姓名(公有);具有功能:工作(公有)、开车(公有)。在包a中编写一个子类Son,具有属性:年龄(受保护的)、姓名;具有功能:玩(私有)、学习(公有)。最后在包b中编写主类Test,在主类的main方法中测试类Father与类Son。
类Father
package a;

public class Father {
private int nianling;
public String name;

public Father(String name, int nianling) {
= name;
this.setNianling(nianling);
}

public void gongneng() {
System.out.println(name + "能开车和工作");
}

public int getNianling() {
return nianling;
}

public void setNianling(int nianling) {
this.nianling = nianling;
}

}
类Son
package a;

public class Son extends Father {
protected int nianling;
private String name;

public Son(String name, int nianling) {
super(name, nianling);
}

@SuppressWarnings("unused")
private void wan() {
System.out.println(name + "能玩!");
}

public void xuexi() {
System.out.println(name + "能学习!");
}

}

Text
package a;

public class Text {

public static void main(String[] args) {
// TODO Auto-generated method stub
Son s = new Son("小张三", 19);
s.gongneng();
s.xuexi();
Father f = new Father("张三", 44);
f.gongneng();
}

}

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

public class Car {
private final String pinpai="";

public void drive(){
System.out.println("正在开车");
}

public String getPinpai() {
return pinpai;
}

}

Aodi类
package four;

public class Aodi extends Car {
private int jiage;
private String xinghao;

public void gongneng() {
System.out.println("变速");
}

public int getJiage() {
return jiage;
}

public void setJiage(int jiage) {
this.jiage = jiage;
}

public String getXinghao() {
return xinghao;
}

public void setXinghao(String xinghao) {
this.xinghao = xinghao;
}

}

Benchi类
package four;

public class Benchi extends Car {
private int jiage;
private String xinghao;


public void gongneng() {
System.out.println("变速");
}

public int getJiage() {
return jiage;
}

public void setJiage(int jiage) {
this.jiage = jiage;
}

public String getXinghao() {
return xinghao;
}

public void setXinghao(String xinghao) {
this.xinghao = xinghao;
}
}

E类
package four;

public class E {

public static void main(String[] args) {
// TODO Auto-generated method stub
Car c=new Car();
c.drive();
Aodi a=new Aodi();
a.setJiage(999990);
a.setXinghao("X5");
System.out.println("Aodi的价格为:"+a.getJiage()+" 型号为: "+a.getXinghao());
a.gongneng();
Benchi b=new Benchi();
b.setJiage(845000);
b.setXinghao("B200");
System.out.println("Benchi的价格为:"+b.getJiage()+" 型号为: "+b.getXinghao());
b.gongneng();
}

}

5.按要求编写一个Java应用程序:
(1)定义一个矩形类Rect,包含两个protected属性:矩形的宽width和高height。一个带有两个参数的构造方法,用于将width和height属性初始化。一个不带参数的构造方法,将矩形的宽和高都初始化为10。还有两个一般方法:求矩形面积的方法getArea()和求矩形周长的方法getPerimeter()。
public class Rect {
//属性
protected double width;
protected double height;
//方法
//不带参数构造函数
public Rect(){
this.width=10;
this.height=10;
}
//带2个参数构造函数
public Rect(double x, double y){
this.width=x;
this.height=y;
}
//球面积方法
public double getArea(){
return width*height;
}
//求周长方法
public double getPerimeter(){
return 2*(width+height);
}
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;
}

}

(2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用矩形的左上角坐标来标识,有两个属性:矩形左上角坐标startX和startY。两个构造方法:一个是带4个参数的构造方法,用于对startX、startY、width和height属性初始化。一个是不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0的矩形。
添加一个方法:判断某个点是否在矩形内部的方法isInside(doublex,double y)。如在矩形内,返回true, 否则,返回false。提示:点在矩形内是指满足条件x >= startX && x <= (startX + width) && y >=(startY - height) && y <= startY

package lession12;
/*(2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用矩形的左上角坐标来标识,有两个属性
:矩形左上角坐标startX和startY。两个构造方法:一个是带4个参数的构造方法,用于对startX、startY、
width和height属性初始化。一个是不带参数

的构造方法,将矩形初始化为左上角坐标、长和宽都为0的矩形。
添加一个方法:判断某个点是否在矩形内部的方法isInside(doublex,double y)。如在矩形内,返回true,
否则,返回false。提示:
点在矩形内是指满足条件x >= startX && x <= (startX + width) && y >=(startY - height) && y <= startY
*/
public class PlainRect extends Rect {

private double startX;
private double startY;


public PlainRect(){
super(0,0);
this.startX=0;
this.startY=0;
}
public PlainRect(double startX,double startY,double x, double y){
super(x,y);
this.startX=startX;
this.startY=startY;
}

public boolean isInside(double x,double y){
if(x >= startX && x <= (startX + width) && y >=(startY - height) && y <= startY){
return true;
}else{
return false;
}
}
}

(3)编写PlainRect类的测试程序,创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;计算并打印输出矩形的面积和周长;判断点(25.5,13)是否在);


package lession12;

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
PlainRect pr = new PlainRect(10,10,20,10);
System.out.println("面积"+pr.getArea());
System.out.println("周长"+pr.getPerimeter());
if(pr.isInside(25.5, 13)){
System.out.println("输出点在矩形内!");
}else{
System.out.println("输出点不在矩形内!");
}
}

}



6.按要求编写一个Java应用程序:
(1)定义一个类,描述一个矩形,包含有长、宽两种属性和计算面积方法。
package six;

public class JuXing {
public int width;
public int wide;

public JuXing(int width, int wide) {
this.width = width;
this.wide = wide;
}

public void s() {
int s = width * wide;
System.out.println("该矩形的面积为:" + s);
}

}

(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性和计算体积的方法。
package six;

public class ChangFangTi extends JuXing {
public int height;

public ChangFangTi(int width, int wide, int height) {
super(width, wide);
this.height = height;
}

public void v() {
int v = wide * width * height;
System.out.println("该长方体的体积为:" + v);
}
}

(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、宽、高,输出其底面积和体积。
package six;

public class Text {

public static void main(String[] args) {
// TODO Auto-generated method stub
ChangFangTi cft = new ChangFangTi(5, 5, 5);
cft.s();
cft.v();
}

}

7.编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表。然后再编写一个A类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类B创建的对象不仅可以调用方法f输出小写的英文字母

表,而且可以调用子类新增的方法g输出大写的英文字母表。最后编写主类C,在主类的main方法中测试类A与类B。

A类
package seven;

public class A {

public void f() {
System.out.print("小写英文字母表: ");
for (char i = 'a'; i <= 'z'; i++) {
System.out.print(i + " ");
}
}
}
B类
package seven;

public class B extends A {
public void g(){
System.out.print("大写英文字母表: ");
for (char i = 'A'; i <= 'Z'; i++) {
System.out.print(i + " ");
}
}
}

C类
package seven;

public class C {

public static void main(String[] args) {
// TODO Auto-generated method stub
A a = new A();
a.f();
System.out.println();
B b = new B();
b.g();
System.out.println();
b.f();

}

}

8.编写一个Java应用程序,该程序包括3个类:Monkey、People类和主类E。要求:
(1)Monkey中有个构造方法:Monkey (String s),并且有个public void speak()方法,在speak方法中输出“咿咿呀呀……”的信息。
package eight;

public class Monkey {
public Monkey(String s) {

}

public void speak() {
System.out.println("咿咿呀呀……");
}

}

(2)People是Monkey的子类,在People类中重写父类的方法speak(),在speak方法中输出“别说话!”的信息。
(3)在People类中新增方法void think(),在think方法中输出“认真思考!”。
package eight;

public class People extends Monkey {

public void speak() {
System.out.println("别说话!");
}

public void think() {
System.out.println("认真思考!");
}

public People(String s) {
super(s);

}

}



(4)在主类E的main方法中创建Monkey与People的对象来测试这两个类的功能。
package eight;

public class E {

public static void main(String[] args) {
// TODO Auto-generated method stub
Monkey m=new Monkey("hello");
People p=new People("你好");
m.speak();
p.speak();
p.think();

}

}

9.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功能。
汽车类Vehicle
package nine;

public class Vehicle {
public int wheels;
public int weight;

public Vehicle(int wheels, int weight) {
this.wheels = wheels;
this.weight = weight;
}

public void shuchu1() {
System.out.println("车轮个数:" + wheels + "个 车重:" + weight + "吨");
}

}

小车类Car
package nine;

public class Car extends Vehicle {
public int loader;

public Car(int wheels, int weight, int loader) {
super(wheels, weight);
this.loader = loader;
}

public void shuchu2() {
Syst

em.out.println("haha");
}

}

卡车类Truck
package nine;

public class Truck extends Car {
public int payload;

public Truck(int wheels, int weight, int loader, int payload) {
super(wheels, weight, loader);
this.payload = payload;
}

public void shuchu3() {
System.out.println("车轮个数:" + wheels + "个 车重:" + weight + "吨"
+ " 承载人数:" + loader + "人 车载重量: " + payload + "吨");
}
}
测试类
package nine;

public class Text {
public static void main(String[] args) {
// TODO Auto-generated method stub
Truck t = new Truck(4, 20, 6, 80);
t.shuchu3();
}
}

10.编写一个Shape类,具有属性:周长和面积;定义其子类三角形和矩形,分别具有求周长的方法。定义主类E,在其main方法中创建三角形和矩形类的对象,并赋给Shape类的对象a、b,使用对象a、b来测试其特性。
Shape类
package ten;

public class Shape {
private double mianji;
private double zhouchang;

public Shape(){

}
public Shape(double mianji,double zhouchang){
this.setMianji(mianji);
this.setZhouchang(zhouchang);
}



public double getZhouchang() {
return zhouchang;
}
public void setZhouchang(double zhouchang) {
this.zhouchang = zhouchang;
}
public double getMianji() {
return mianji;
}
public void setMianji(double mianji) {
this.mianji = mianji;
}
}
JuXing 类
package ten;

public class JuXing extends Shape {
private double a;
private double b;

public JuXing(double a,double b){
this.a=a;
this.b=b;
}

public void zhouchang(){
System.out.println("矩形都周长为:"+(a+b)*2);
}

}
SanJiao 类
package ten;

public class SanJiao extends Shape {
private double a;
private double b;
private double c;

public SanJiao(double a, double b, double c) {

this.a = a;
this.b = b;
this.c = c;
}

public void zhouchang() {
if (a + b > c && Math.abs(a - b) < c) {

System.out.println("三角形的周长为:" + (a + b + c));

} else {
System.out.println("这不是三角形");

}
}

}
E类
package ten;

public class E {

public static void main(String[] args) {
// TODO Auto-generated method stub
JuXing jx=new JuXing(2.5, 8.1);
jx.zhouchang();

SanJiao sj=new SanJiao(3, 4, 5);
sj.zhouchang();

}

}



11.编写一个Java应用程序,该程序包括3个类: A类、B类和主类E。其中类B是类A的子类,在子类B中新增了成员变量和成员方法,并且隐藏了父类A的成员变量和重写了父类A的成员方法。在主类E的main方法中,创建类B的对象并赋给父类A的对象a,使用上转型对象a来测试上转型对象的一些特性。
A类
package sudy;

public class A {
public void shuchua(){
System.out.println("这是A类");
}
}

B类
package sudy;

public class B extends A {
public void shuchuB(){
System.o

ut.println("这是B类");
}
}

E类
package sudy;

public class E {

public static void main(String[] args) {
// TODO Auto-generated method stub
A a=new B();
a.shuchua();


}

}

相关文档
最新文档