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()); } }
結果: