继承
来源:互联网 发布:java void方法结束 编辑:程序博客网 时间:2024/05/20 00:36
1. 编写一个java程序,包含一个父类Telephone和一个子类Mobilephone,父类中的属性包括电话品牌、电话号码、通话时间、费率,子类中的属性包括父类中的所有属性和网络类型、被叫时间。同时对两者都计算出话费。
//Inheritance.java
// Telephone 类
class Telephone {
String brand, number; //电话品牌:brand;电话号码:number
double dialledTime; //通话时间
double rate; //费率
Telephone(String b, String n) {
brand=b;
number=n;
//电话品牌:brand;电话号码:number
}
String getBrand( ) {
return brand;
}
String getNumber( ) {
return number;
}
double getRate( ) {
return rate;
} //返回费率值
double getDialledTime( ) {
return dialledTime;
}
void setBrand(String b) {
brand = b;
}
void setNumber(String n) {
number = n; // 设置电话号码
}
void setRate(double r) {
rate = r;
}
void setDialledTime(double d) {
dialledTime = d;
}
double callCost( ) {
return dialledTime * rate; // dialledTime * rate;
} // 计算话费
void display( ) {
System.out.println("电话品牌: "+ brand +" 电话号码: "+ number);
System.out.println("通话时间: "+ dialledTime +" 费率: "+ rate);
System.out.println("话费: "+ callCost());
}
}
// Mobilephone类
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("电话品牌: "+ brand +" 电话号码: "+ number
+" 网络: "+ network);
System.out.println("主叫时间: "+ dialledTime +" 被叫时间: " +
receivedTime +" 费率: "+ rate);
System.out.println("话费: "+ callCost( ));
}
}
public class Inheritance {
public static void main(String[] args) {
Telephone tel;
Mobilephone mobile;
tel = new Telephone("TCL","8309600"); // 两个参数:"TCL"和"8309600"
mobile = new Mobilephone("Nokia", "13007091010","CDMA");//三个参数:"Nokia", "13007091010","CDMA"
tel.setRate(0.2);
tel.setDialledTime(150);
mobile.setRate(0.4);
mobile.setReceivedTime(80); //设置主叫时间为80
mobile.setReceivedTime(120);
tel.display( );
System.out.println( );
mobile.display(); //显示移动电话的信息
}
}
实验结果:
电话品牌: TCL 电话号码: 8309600
通话时间: 150.0 费率: 0.2
话费: 30.0
电话品牌: Nokia 电话号码: 13007091010 网络: CDMA
主叫时间: 0.0 被叫时间: 120.0 费率: 0.4
话费: 24.0