继承

来源:互联网 发布: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

 

0 0
原创粉丝点击