接口作业
1.手机 普通手机 智能手机
/* * 父类手机类 */ public abstract class Handset { String brand; // 手机型号 String type; // 手机品牌 public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getType() { return type; } public void setType(String type) { this.type = type; } public abstract void faxx(); // 发信息方法 public abstract void tdh(); // 通电话方法 }
package com.handset; /* *播放功能 */ public interface bofang { public void bf(); }
package com.handset; /* * 连接网络功能 */ public interface shangwang { public void sw(); }
package com.handset; /* * 照相功能 */ public interface zhaoxiang { public void paizhao(); }
智能手机类继承父类手机
package com.handset; /* * 智能手机类 */ public class AptotudeHandset extends Handset implements zhaoxiang, shangwang, bofang { @Override public void bf() { // TODO Auto-generated method stub System.out.println("开始播放音乐《》"); } @Override public void sw() { System.out.println("连接4G网络"); } @Override public void paizhao() { // TODO Auto-generated method stub System.out.println("拍照成功"); } @Override public void faxx() { // TODO Auto-generated method stub System.out.println("发送彩色短信"); } @Override public void tdh() { // TODO Auto-generated method stub System.out.println("开启视频通话"); } public AptotudeHandset(String brand,String type) { this.brand=brand; this.type=type; } public AptotudeHandset() {} }
package com.handset; /* * 普通手机类 */ public class CommonHandset extends Handset implements bofang { @Override public void bf() { System.out.println("播放音乐!"); } @Override public void faxx() { System.out.println("发了条短信"); } @Override public void tdh() { // TODO Auto-generated method stub System.out.println("开始通话"); } public CommonHandset(String brand,String type) { this.brand=brand; this.type=type; } public CommonHandset() {} }
package com.handset; /* * 测试类 */ public class Test { public static void main(String[] args) { AptotudeHandset sj1 = new AptotudeHandset("6s","苹果"); CommonHandset sj2 = new CommonHandset("老人机","诺基亚"); System.out.println("这是一台"+sj1.type+"手机"+"型号是"+sj1.brand); sj1.sw(); sj1.bf(); sj1.paizhao(); sj1.faxx(); sj1.tdh(); System.out.println("________________________________"); System.out.println("这是一台"+sj2.type+"手机"+"型号是"+sj2.brand); sj2.bf(); sj2.faxx(); sj2.tdh(); } }
在java中,继承只能是单继承, 一个子类只能有一个父类
抽象类和接口的特点:
相同点: 抽象类和接口都不能被实例化对象
抽象类和接口都可以有抽象方法
子类必须重写其所有抽象方法,除非子类也是抽象类
不同点:抽象类中可以有普通方法,接口中只能有抽象方法(jdk1.8之前)
抽象类中可以有普通成员变量,接口中只能静态常量
抽象类只能被单继承,接口可以被多实现