一、题目
贷款购买房屋时,支付首付款是一种功能操作,定义在Payment接口中。住宅产权房屋类和商业产权房屋类均具有支付首付款的功能。依据以上内容,创建一个接口和两个类:
(1)接口Payment,包含:
(2) Payment接口的非抽象使用类——Residence类(住宅产权房屋类),包含:
(3) Payment接口的非抽象使用类——Commercial类(商业产权房屋类),包含:
在主类Test中,创建住宅产权房屋对象,完成住宅产权房屋首付款的计算。再将定义商业产权房屋对象传递给Payment接口对象,之后利用接口回调完成商业产权房屋首付款的计算。输入测试数据,完成结果的输出。
二、源代码
1、payment.java
interface payment{ //定义一个接口 double downPay(double price,double area); //方法声明 }
2、Residence.java
class Residence implements payment{ //创建商业产权房屋类 public double downPay(double price,double area) { //方法重写 return (price*area*0.2); } }
3、Commercial.java
class Commercial implements payment{ //创建住宅产权房屋类 public double downPay(double price,double area) { //方法重写 return (price*area*0.45); } }
4、Test.java
import java.util.Scanner; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub double price; double area; Scanner reader = new Scanner(System.in);//调用方法 Payment payment=new Commercial();//将Commercial类的对象赋给payment类 Residence res = new Residence();//创建住宅产权房屋对象 System.out.println("请输入房屋的总面积");//输出"请输入房屋的总面积" area = reader.nextDouble(); System.out.println("请输入房屋的每平米的价格");//输出"请输入房屋的每平米的价格" price = reader.nextDouble(); System.out.println("住宅产权房屋的首付:"+res.downPay(area, price)); System.out.println("商业产权房屋的首付:"+payment.downPay(area, price));//接口回调 } }
3、运行结果
原文:https://www.cnblogs.com/taoyiming/p/11809182.html