java例题8

上传人:第*** 文档编号:34207277 上传时间:2018-02-21 格式:DOC 页数:10 大小:80KB
返回 下载 相关 举报
java例题8_第1页
第1页 / 共10页
java例题8_第2页
第2页 / 共10页
java例题8_第3页
第3页 / 共10页
java例题8_第4页
第4页 / 共10页
java例题8_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《java例题8》由会员分享,可在线阅读,更多相关《java例题8(10页珍藏版)》请在金锄头文库上搜索。

1、例 8-1 使用接口实现多态本例定义立体物体接口 Solid,规定具备计算自己的表面积和体积的方法。Cube 立方体类实现了 Solid,具体描述了立方体表面积和体积的计算过程;Sphere 球体类实现了 Solid,具体描述了球体表面积和体积的计算过程。这两个类可用来创建对象并使用。interface Soliddouble getArea();double getVolume();class Cube implements Solidprivate double width,height,depth;Cube(double w,double h,double d)width = w;hei

2、ght = h;depth = d;public double getArea()return (width*height+width*depth+height*depth)*2;public double getVolume()return width*height*depth;class Sphere implements Solidprivate double radius;Sphere(double r)radius = r;public double getArea()return 4*Math.PI*radius*radius;public double getVolume()re

3、turn 4.0/3*Math.PI*radius*radius*radius;public class InterfaceDemopublic static void main(String args) Cube c = new Cube(3,4,5);System.out.println(立方体的表面积是+c.getArea();System.out.println(立方体的体积是+c.getVolume();Sphere s = new Sphere(1);System.out.println(球的表面积是+s.getArea();System.out.println(球的体积是+s.g

4、etVolume();例 8-2 抽象类及抽象方法的使用定义抽象父类 Shape 用来描述形状,其中的 getArea()方法为抽象方法。圆形类 Circle 和矩形类 Rectangle 继承了 Shape 类,并各自覆盖了 getArea()方法实现了相应功能。这两个子类是可以用来创建对象进行应用的类。abstract class Shape /抽象类 Shapeprotected String color; /颜色Shape () /无参构造方法,无执行语句Shape( String col ) /有参构造方法color = col ;abstract public double get

5、Area(); /抽象方法 getArea()public String toString() /得到描述信息字符串return 颜色是 + color;class Circle extends Shape /Shape的子类圆类double radius; /半径public Circle( String c ,double r ) /构造方法super( c ); /调用父类有参构造方法radius = r;public double getArea() /实现父类的抽象方法,求圆面积return Math.PI * radius * radius ;public String toStr

6、ing() /覆盖父类的同名方法return 圆的面积是: + getArea() + super.toString();class Rectangle extends Shape /Shape的子类矩形类protected double wid,len; /长,宽public Rectangle( String c,double w,double l ) /构造方法super(c);wid = w;len = l;public double getArea() /实现父类的抽象方法,求长方形面积return wid * len ;public String toString() /覆盖父类的

7、同名方法return 长方形的面积是: + getArea()+ super.toString();class TestShapepublic static void main(String args)Rectangle rect = new Rectangle(“蓝色” ,10.0 , 20.0);Circle cir = new Circle(“绿色” , 10.0);System.out.println(rect.toString();System.out.println(cir.toString();例 8-3 薪酬接口的定义interface ISalarydouble rate =

8、 0.15; /税率int taxBase = 2000; /个税起征值double getSalary();DecimalFormat df = new DecimalFormat(0.00);例 8-4 薪酬接口实现举例使用前面的 ISalary 接口,根据不同岗位的薪酬结构,实现薪酬计算功能。程序员薪酬结构是:基础薪酬 3500 元,每工作 1 年工资涨 15%;销售薪酬结构是:基本工资 1500 元,加上业绩奖金。import java.text.DecimalFormat;interface ISalary /薪酬接口double rate = 0.15; /税率int taxBas

9、e = 2000; /个税起征值DecimalFormat df = new DecimalFormat(0.00); /用来保留两位小数double getSalary(); /计算工资的抽象方法class Programmer implements ISalary /程序员类,实现薪酬接口private double pay = 3500; /基本薪酬private int year; /工作年限Programmer(int y) /构造方法year = y;public double getSalary() /实现接口中计算工资的方法double money = pay*Math.pow

10、(1.15,year);return money - (money- taxBase)*rate;void printInfo() /显示信息System.out.println(程序员:工作+year+年,目前月薪+df.format(getSalary()+元);class Seller implements ISalary /销售人员类,实现薪酬接口private double pay = 1500; /基本工资private double reward; /业绩奖金Seller(double r) /构造方法reward = r;public double getSalary() /实

11、现接口中计算工资的方法double money = pay+reward;return money - (money- taxBase)*rate;void printInfo() /显示信息System.out.println(销售人员:业绩奖金+reward+元,目前月薪+df.format(getSalary()+元);public class SalaryDemo1 public static void main(String args) Programmer p1 = new Programmer(5);p1.printInfo();Seller s1 = new Seller(50

12、00);s1.printInfo();例 8- 5 补充例 8-4,实现类的继承与接口的使用同时进行定义 Employee 类,能够描述员工工作岗位、姓名、年龄,包含相关的构造方法和输出信息方法。让程序员类和销售人员类继承 Employee 类,同时实现 ISalary 接口。import java.text.DecimalFormat;class Employee /员工类private String name; /姓名private int age; /年龄private String position; /职位Employee(String n, int a,String p) /构造方

13、法name = n;age = a;position = p;void printInfo() /显示信息System.out.println(name+今年+age+岁+职位是+position);interface ISalary /薪酬接口double rate = 0.15; /税率int taxBase = 2000; /个税起征值DecimalFormat df = new DecimalFormat(0.00);double getSalary();/程序员类继承自员工类,并实现了薪酬接口class Programmer extends Employee implements I

14、Salaryprivate double pay = 3500; /基本薪酬private int year; /工作年限Programmer(String n,int a,String p,int y)super(n,a,p);year = y;public double getSalary()double money = pay*Math.pow(1.15,year);return money - (money-taxBase)*rate;void printInfo()super.printInfo();System.out.println(工作了+year+年,目前月薪+df.form

15、at(getSalary()+元);/销售人员类继承自员工类,并实现了薪酬接口class Seller extends Employee implements ISalaryprivate double pay = 1500; /基本工资private double reward; /业绩奖金Seller(String n,int a,String p,double r)super(n,a,p);reward = r;public double getSalary()double money = pay+reward;return money - (money-taxBase)*rate;void printInfo()super.printInfo();System.out.println(业绩奖金+reward+元,目前月薪+df.format(getSalary()+元);public class SalaryDemo2 public static void main(String args) Programmer p1 = new

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号