抽象类和接口的基本概念及演示

1.抽象类

  a.抽象类的概念:只包含一个抽象方法的类就是抽象类。

  b.抽象方法:只声明而未实现的方法就是抽象方法。

  c.抽象类和抽象方法都必须用abstract来声明。

  d.抽象类必须被子类继承。

  代码实例演示:

  AskForLeave类

  

/**
 * Created by Pres_cheng on 2016/8/29.
 * 请假条抽象类
 */
public abstract class AskForLeave {
    private String name;
    private String date;
    private String reason;

    public AskForLeave(String name,String date,String reason){
        this.name = name;
        this.date = date;
        this.reason = reason;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }


    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }


    public abstract String getContent();
}

  Student类

  

/**
 * Created by Pres_cheng on 2016/8/29.
 * 学生类
 */
public class Student extends AskForLeave {

    private String theClass;

    public Student(String name, String date, String reason,String theClass) {
        super(name, date, reason);
        this.theClass = theClass;
    }

    @Override
    public String getContent() {
        return "	我是"+getName()+"我因"+getReason()+"不能上课,特此请假
	日期:" + getDate();
    }
}

  Main类

  

/**
 * Created by Pres_cheng on 2016/8/29.
 */
public class Main {
    public static void main(String []args){
        Student student =new Student("pres_cheng","2016-8-29","生病","计科13-2班");
        System.out.println(student.getContent());
    }
}

2.接口

  a.接口可以理解为一种特殊的类,里面全部都是由全局常量和公共抽象方法所组成。

  b.接口必须有子类,并且子类要继承所有抽象方法。

  c.一个子类可以实现多个接口,但只能继承一个抽象类。

  d.一个接口可以继承多个接口。

  e.一个子类可以继承抽象类同时实现接口。

  代码实例演示:

  Computer类

  

public class Computer {
    public static void plugin(USB usb){
        System.out.println("usb开始工作");
        usb.start();
        usb.end();
    }
}

  USB接口

  

public interface USB {
    //设备开始工作
    public abstract void start();
    //设备结束工作,接口中方法默认为抽象方法,所以可省略public abstract
    void end();
}

  UDisk接口

  

public class UDisk implements USB {
    @Override
    public void start() {
        System.out.println("U盘开始工作");
    }

    @Override
    public void end() {
        System.out.println("U盘结束工作");
    }
}

  Print接口

  

public class Print implements USB {
    @Override
    public void start() {
        System.out.println("打印机开始工作");
    }

    @Override
    public void end() {
        System.out.println("打印机结束工作");
    }
}

  Main类

  

public class Main {
    public static void main(String[] args) {
        UDisk uDisk = new UDisk();
        Print print = new Print();
        Computer computer = new Computer();
        computer.plugin(uDisk);
        computer.plugin(print);
    }
}
原文地址:https://www.cnblogs.com/prescheng/p/5819441.html