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

本文详细介绍了抽象类和接口的概念及使用方式,并通过具体代码示例进行了解释说明。包括抽象类的特点、如何创建和继承抽象类,以及接口的定义、实现多接口的方式等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 "\t我是"+getName()+"我因"+getReason()+"不能上课,特此请假\n\t日期:" + 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值