Java中抽象类和接口的使用方法及区别

1.抽象类和接口

抽象类和接口为我们提供了实现类的公共行为规范,在继承它们时对里面的抽象方法进行重写就可以了。

抽象类:包含抽象方法和普通方法,抽象方法只需要声明就可以了,不需要写出方法体,此外,抽象类不可以被实例化,但可以有构造器,在下面的代码中我们会看到。抽象类用abstract定义,实现用extends。声明的抽象方法必须被实现。

接口:接口中方法默认的都是抽象方法,修饰符为public,实现时的方法要用public来修饰,数据成员一旦被定义必须被初始化,且不能够被修改,相当于static和final的结合;一个类可实现多个接口。但只能继承一个类。接口用interface定义,实现用implements。接口中的所有方法必须被实现。


2.代码实现

interface B{
    int b=2;//数据成员必须被初始化
    void  playB();//默认为public,abstract类型
     void printB();
}
interface C{
    int c=3;
    void  playC();
    void printC();
}
abstract  class A{
    A(){    //抽象类中可以有构造器
        System.out.println("A():");
    }
    abstract void play();//抽象方法申明
    void print(){    //普通方法
        System.out.println("A:print()");
    }
}
public class Abstract extends A implements B,C{   //实现一个抽象类,两个接口
    //实现抽象类A中方法
    public void play(){      //本身类中的方法
        System.out.println("Abstract:play()");
    }
    //实现接口B中的方法
    public void playB(){
        System.out.println("Abstract:playB()");
    }
    public void printB(){
        System.out.println("Abstract:printB()");
    }
    //实现接口C中的方法
    public void playC() {
        System.out.println("Abstract:playC()");
    }
    public void printC() {
        System.out.println("Abstract:printC()");
    }
    //输出接口中的数据成员值
    void Abstractprint(){
        System.out.println("Abstract:print()"+b+" "+c);
    }
    public static void main(String args[]){
        Abstract a=new Abstract();
        a.play();
        a.print();
        a.playB();
        a.printB();
        a.playC();
        a.printC();
        a.Abstractprint();
    }
}

3.实现结果显示:


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值