首页 > 技术文章 > 接口作业

cheng1994 2019-02-19 13:10 原文

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之前)
抽象类中可以有普通成员变量,接口中只能静态常量
抽象类只能被单继承,接口可以被多实现

推荐阅读