1,實現如下類之間的繼承關系,並編寫Music類來測試這些類。


package com.chuoji.text01;
public class Instrument {
public void play()
{
System.out.println("彈奏音樂");
}
}
public class Brass extends Instrument {
public void play()
{
System.out.println("彈奏brass");
}
public void play2()
{
System.out.println("調用brass的play2");
}
}
public class Music {
public static void tune(Instrument i)
{
i.play();
}
public static void main(String[] args)
{
Wind w= new Wind();
Brass b= new Brass();
tune(w);
tune(b);
}
}
public class Music {
public static void tune(Instrument i)
{
i.play();
}
public static void main(String[] args)
{
Wind w= new Wind();
Brass b= new Brass();
tune(w);
tune(b);
}
}
2。
創建如下三個類:(People類中的三個方法分別輸出一些信息,ChinaPeople 和AmericanPeople類重寫父類的三個方法)。

package zhongqiuzuoye;
public class People {
protected double height;
protected double weight;
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public void speakHello()
{
}
public void averageHeight()
{
}
public void averageWeight()
{
}
}
package zhongqiuzuoye;
public class ChinaPeople extends People{
public void chinaGoufu()
{
System.out.println("坐如鍾,站如松");
}
public void speakHello()
{
System.out.println("你好");
}
public void averageHeight()
{
System.out.println("中國人平均身高為170cm");
}
public void averageWeight()
{
System.out.println("中國人平均體重是70kg");
}
}
package zhongqiuzuoye;
public class AmericnPeople extends People{
public void chinaGoufu()
{
System.out.println("直拳");
}
public void speakHello()
{
System.out.println("hello");
}
public void averageHeight()
{
System.out.println("美國人平均身高為180cm");
}
public void averageWeight()
{
System.out.println("美國人平均體重是80kg");
}
}
package zhongqiuzuoye;
public class TestPeople {
public static void main(String[] args) {
ChinaPeople c =new ChinaPeople();
c.speakHello();
c.averageHeight();
c.averageWeight();
AmericnPeople a=new AmericnPeople();
a.speakHello();
a.averageHeight();
a.averageWeight();
}
}

3.
編寫一個Java應用程序,該程序包括3個類:Monkey類、People類和主類
E。要求:
(1) Monkey類中有個構造方法:Monkey (String s),並且有個public void speak()
方法,在speak方法中輸出“咿咿呀呀......”的信息。
(2)People類是Monkey類的子類,在People類中重寫方法speak(),在speak方法
中輸出“小樣的,不錯嘛!會說話了!”的信息。
(3)在People類中新增方法void think(),在think方法中輸出“別說話!認真思考!”
的信息。
(4)在主類E的main方法中創建Monkey與People類的對象類測試這2個類的功
能。
父類:
package com.lianxi2;
public class Monkey {
private String s;
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
public Monkey(String s)
{
this.s=s;
}
public Monkey() {
super();
}
public void speak()
{
System.out.println("咿咿呀呀......");
}
}
子類:
package com.lianxi2;
public class People extends Monkey {
private String st;
public People(String s, String st) {
super(s);
this.st = st;
}
public void speak()
{
System.out.println("小樣的,不錯嘛!會說話了!");
}
public void think()
{
System.out.println("別說話!認真思考!");
}
}
測試:
package com.lianxi2;
public class M {
public static void main(String[] args) {
People pe=new People("你好","傻子");
pe.speak();
pe.think();
Monkey m=new Monkey();
m.speak();
}
}
結果:

4
定義類Human,具有若干屬性和功能;定義其子類Man、Woman; 在主類Test中分別創建子類、父類和上轉型對象,並測試其特性。
父類:
package com.lianxi3;
public class Human {
private String speak;
private String jump;
public String getSpeak() {
return speak;
}
public void setSpeak(String speak) {
this.speak = speak;
}
public String getJump() {
return jump;
}
public void setJump(String jump) {
this.jump = jump;
}
public Human(String speak, String jump) {
super();
this.speak = speak;
this.jump = jump;
}
public Human() {
super();
}
public void Jump()
{
System.out.println("跳:"+jump);
}
public void Speak()
{
System.out.println("說:"+speak);
}
public void as()
{
System.out.println("我能工作");
}
}
子類:
package com.lianxi3;
public class Man extends Human {
private String shui;
public String getShui() {
return shui;
}
public void setShui(String shui) {
this.shui = shui;
}
public void Shui()
{
System.out.println("睡"+shui);
}
}
測試:
package com.lianxi3;
public class Test {
public static void main(String[] args) {
Man m=new Man();
m.setJump("低");
m.setShui("長");
m.setSpeak("粗");
System.out.println("聲音:"+m.getSpeak()+" 跳:"+m.getJump()+" 睡:"+m.getShui());
//向上轉型
Human h=new Man();
h.as(); //如果方法被重寫,則調用子類的函數
//向下轉型
Object ob=new Man();//先轉形成等級最高的object
Man ma=(Man)ob; //在轉型所需要的類型
}
}
5
28.按要求編寫一個Java應用程序:
(1)定義一個類,描述一個矩形,包含有長、寬兩種屬性,和計算面積方法。
(2)編寫一個類,繼承自矩形類,同時該類描述長方體,具有長、寬、高屬性,
和計算體積的方法。
(3)編寫一個測試類,對以上兩個類進行測試,創建一個長方體,定義其長、
寬、高,輸出其底面積和體積。
父類:
package com.lianxi4;
public class Juxing {
private double chang;
private double kuan;
public double getChang() {
return chang;
}
public void setChang(double chang) {
this.chang = chang;
}
public Juxing(double chang, double kuan) {
super();
this.chang = chang;
this.kuan = kuan;
}
public Juxing() {
super();
}
public double mianJi()
{
return chang*kuan;
}
}
子類:
package com.lianxi4;
public class Tiji extends Juxing {
private double gao;
public Tiji(double chang, double kuan, double gao) {
super(chang, kuan);
this.gao = gao;
}
public double tiJi()
{
return super.mianJi()*gao;
}
}
測試:
package com.lianxi4;
public class Test {
public static void main(String[] args) {
Tiji ti=new Tiji(5,6,7);
System.out.println("面積:"+ti.mianJi());
System.out.println("體積:"+ti.tiJi());
}
}
結果:

6
編寫一個Shape類,具有屬性:周長和面積;
定義其子類三角形和矩形,分別具有求周長的方法。
定義主類E,在其main方法中創建三角形和矩形類的對象,
並賦給Shape類的對象a、b,使用對象a、b來測試其特性。
父類:
package com.lianxi5;
//抽象類
public abstract class Shape {
private double mianJi;
private double zhouchang;
public double getMianJi() {
return mianJi;
}
public void setMianJi(double mianJi) {
this.mianJi = mianJi;
}
public double getZhouchang() {
return zhouchang;
}
public void setZhouchang(double zhouchang) {
this.zhouchang = zhouchang;
}
public abstract double zhouchang();
}
子類;
package com.lianxi5;
public class Zc extends Shape {
private double x;
private double y;
private double z;
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public double getZ() {
return z;
}
public void setZ(double z) {
this.z = z;
}
@Override
public double zhouchang() {
if((x+y)>z&&(x+z)>y&&(y+z)>x)
{
return x+y+z;
}
else
{
return 0;
}
}
}
package com.lianxi5;
public class Jxzc extends Shape {
private double x;
private double y;
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
@Override
public double zhouchang() {
return (x+y)*2;
}
}
測試;
package com.lianxi5;
public class Test {
public static void main(String[] args) {
Zc z=new Zc();
Jxzc j=new Jxzc();
z.setX(7);
z.setY(8);
z.setZ(9);
System.out.println(z.zhouchang());
}
}
結果:


