开始写继承代码,准备翻越山丘,跨过继承、抽象、接口的分水岭

▼text复制代码/** * 建Person类(联系人姓名/电话),Company(品牌名/地址/服务范围)、Worker(工种/工龄/评分)、Customer(房屋地址/面积)继承它, * 创建智能家居报价系统角色对象测试 */ public class Day36SmartHomeQuotationTest { public static void main(String[] args){ Day36Person[] user = new Day36Person[5]; user[0] = new Day36Company("张经理","13829871635","视声智能","广州市黄埔区","KNX全屋智能/灯光/安防"); user[1] = new Day36Company("李经理","13150432864","杜亚窗帘","杭州市拱墅区","智能窗帘/智能门锁"); user[2] = new Day36Worker("王强","18125664636","灯光设计师",3,4.5); user[3] = new Day36Worker("陈明昊","13712570240","智能设计师",5,4.8); user[4] = new Day36Customer("马思纯","15138473848","上海市静安区",533); for (Day36Person per : user){ System.out.println("----------".repeat(10)); System.out.println(per); System.out.println(per.introduce()); } } }
▼text复制代码**Person类(父类)** public class Day36Person { private static final String PHONE_REGEX = "^1[3-9]\\d{9}$"; private static final String ERROR_PHONE_FORMAT = "手机号码格式不正确,已置空!"; private String name = ""; private String phone = ""; public Day36Person() { } public Day36Person(String name, String phone) { setName(name); setPhone(phone); } public void setName(String name) { this.name = name; } public void setPhone(String phone) { if (phone != null && phone.matches(PHONE_REGEX) ){ this.phone = phone; }else{ System.out.println(ERROR_PHONE_FORMAT); this.phone = ""; } } public String getName() { return this.name; } public String getPhone() { return this.phone; } @Override public String toString() { return "姓名:" + this.getName() + ",电话:" + this.getPhone(); } public String introduce(){ return ""; } }
▼text复制代码**Company类,继承Person类** public class Day36Company extends Day36Person { private String companyName = ""; private String address = ""; private String serviceScope = ""; public Day36Company() { } public Day36Company(String name, String phone, String companyName, String address, String serviceScope) { super(name, phone); setCompanyName(companyName); setAddress(address); setServiceScope(serviceScope); } public void setCompanyName(String companyName) { this.companyName = companyName; } public void setAddress(String address) { this.address = address; } public void setServiceScope(String serviceScope) { this.serviceScope = serviceScope; } public String getCompanyName() { return this.companyName; } public String getAddress() { return this.address; } public String getServiceScope() { return this.serviceScope; } @Override public String toString() { return "【公司】联系人:" + this.getName() + ",电话:" + this.getPhone() + ",品牌:" + this.getCompanyName() + ",地址:" + this.getAddress() + ",服务范围:" + this.getServiceScope(); } public String introduce() { StringBuilder sb = new StringBuilder(); sb.append("您好,我们是").append(this.getCompanyName()).append(",公司位于").append(this.getAddress()).append(",主营").append(this.getServiceScope()).append(",联系人").append(this.getName()); return sb.toString(); } }
▼text复制代码**Work类,继承Person类** public class Day36Worker extends Day36Person { private static final String ERROR_WORK_YEAR = "工龄0-70,其他无效!已置0"; private static final String ERROR_SCORE = "评分只能0-5,整数或一位小数!已置0"; private String jobType = ""; private int workYear = 0; private double score = 0.0; public Day36Worker() { } public Day36Worker(String name, String phone, String jobType, int workYear, double score) { super(name, phone); setJobType(jobType); setWorkYear(workYear); setScore(score); } public void setJobType(String jobType) { this.jobType = jobType; } public void setWorkYear(int workYear) { if (workYear >= 0 && workYear <= 70) { this.workYear = workYear; } else { System.out.println(ERROR_WORK_YEAR); this.workYear = 0; } } public void setScore(double score) { if (score >= 0 && score <= 5) { this.score = score; } else { System.out.println(ERROR_SCORE); this.score = 0.0; } } public String getJobType() { return this.jobType; } public int getWorkYear() { return this.workYear; } public double getScore() { return this.score; } @Override public String toString() { return "【师傅】:" + this.getName() + "," + this.getPhone() + "," + this.getJobType() + "," + this.getWorkYear() + "," + this.getScore(); } public String introduce() { StringBuilder sb = new StringBuilder(); sb.append("我是").append(this.getJobType()).append(",从业").append(this.getWorkYear()).append("年,评分").append(this.getScore()).append(",电话").append(this.getPhone()); return sb.toString(); } }
▼text复制代码**Customer类,继承Person类** public class Day36Customer extends Day36Person { private static final String ERROR_HOUSE_AREA = "面积大于0小于5000,整数或一位小数!"; private String houseAddress = ""; private double houseArea = 0.0; public Day36Customer() { } public Day36Customer(String name, String phone, String houseAddress, double houseArea) { super(name, phone); setHouseAddress(houseAddress); setHouseArea(houseArea); } public void setHouseAddress(String houseAddress) { this.houseAddress = houseAddress; } public void setHouseArea(double houseArea) { if (houseArea > 0.0 && houseArea < 5000.0) { this.houseArea = houseArea; } else { System.out.println(ERROR_HOUSE_AREA); this.houseArea = 0.0; } } public String getHouseAddress() { return this.houseAddress; } public double getHouseArea() { return this.houseArea; } @Override public String toString() { return "【业主】:" + this.getName() + "," + this.getPhone() + "," + this.getHouseAddress() + "," + this.getHouseArea() + "m²"; } public String introduce() { StringBuilder sb = new StringBuilder(); sb.append("业主").append(this.getName()).append(",房屋面积").append(this.getHouseArea()).append("m²,位于").append(this.getHouseAddress()).append(",需要智能家居报价。"); return sb.toString(); } }
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
