求java中几个继承与多态实例,并要有相应的题目!给我参考和练习下,本人新手,不宜难的
------解决方案--------------------------------------------------------
你不如自己Google,给你粘贴两道:
1。已有一个交通工具类Vehicle,其中属性包括:速度Speed、类别Kind、颜色Color;方法包括设置速度、设置颜色、取的类别、取的颜色。设计一个小车类Car,继承自Vehicle。Car中增加了属性:座位数passenger,增加了设置和获取座位数的方法,创建Car的对象,为其设置新速度和颜色,并显示其状态(所有属性)。
2。设计一个圆类Circle,具有属性:圆心坐标x和y及圆半径r,除具有设置及获取属性的方法外,还具有计算周长的方法Perimeter()和计算面积的方法area()。再设计一个圆柱体类Cylinder,Cylinder继承自Circle,增加了属性:高度h,增加了设置和获取h的方法、计算表面积的方法Perimeter()和计算体积的方法volume()。创建Cylinder的类对象,显示其所有属性,计算并显示其表面积和体积。
------解决方案--------------------------------------------------------
子类的派生与方法覆盖
- Java code
//Inheritance.javaclass Telephone { String brand,number; double dialledTime; double rate; Telephone(String b, String n) { //构造方法 brand = b; number = n; } String getBrand() { return brand; } String getNumber() { return number; } double getDialledTime() { return dialledTime; } double getRate() { return rate; } void setBrand(String b) { brand = b; } void setNumber(String n) { number = n; } void setDialledTime(double d) { dialledTime = d; } void setRate(double r) { rate = r; } double callCost() { return rate*dialledTime; } void display() { System.out.println("电话品牌:"+brand+" 电话号码:"+number); System.out.println("通话时间:"+dialledTime+" 费率:"+rate); System.out.println("话费:"+callCost()); }}class Mobilephone extends Telephone { String network; double receivedTime; Mobilephone(String b, String num, String net) { super(b,num); //显式的调用超类的有参构造函数 network = net; } String getNetwork() { return network; } double getReceivedTime() { return receivedTime; } void setNetwork(String n) { network = n; } void setReceivedTime(double d) { receivedTime = d; } double callCost() { return (dialledTime+0.5*receivedTime)*rate; } //方法重写 void display() { System.out.println("电话品牌:"+getBrand()+" 电话号码:"+getNumber()+" 网络:"+getNetwork()); System.out.println("主叫时间:"+getDialledTime()+" 被叫时间:"+getReceivedTime()+" 费率:"+getRate()); System.out.println("话费:"+callCost()); }}public class Inheritance { public static void main(String args[]) { Telephone tel = new Telephone("TCL","123456789"); Mobilephone mobile = new Mobilephone("Nokia","15019905753","CDMA"); tel.setRate(0.2); tel.setDialledTime(150); mobile.setRate(0.39); mobile.setDialledTime(80); mobile.setReceivedTime(120); tel.display(); System.out.println(); mobile.display(); }}