java中抽象类与接口(安卓开发常见的接口)

java中抽象类与接口(安卓开发常见的接口)

抽象类和接口就好比一个框架,而具体的实现交给子类,就好比学习语文造句,“如果…那么…”就是一个框架,而造出来的句子就属于具体实现部分。


抽象类:被abstract修饰符所修饰的类或者方法称为抽象类和抽象方法

  • 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类
  • 抽象类一般作为父类使用,即不能使用new来创建对象,要让子类继承抽象类
  • 抽象方法的话就是在抽象类中作声明,方法的的实现让子类实现
  • 子类继承抽象类的时候必须去实现抽象类的所有抽象方法,否则也要声明为抽象类

下面定义一个抽象类:

A类:

public abstract class A {
    public abstract void fun();  //抽象方法fun,函数主体交给子类实现

    public abstract void fun2();  //抽象方法fun2,函数主体交给子类实现
    public void fun3(){           //普通方法
        System.out.println("fun3");
    }
}

B类(继承A类):

public class B extends A {

    @Override  //方法重写的标记
    public void fun() {
        System.out.println("fun");  //函数主体实现
    }

    @Override //方法重写的标记
    public void fun2() {
        System.out.println("fun2"); //函数主体实现
    }
}

可以看到B类继承抽象类A,并且要想不报错,B类必须重写A类所有抽象方法,即A类所有抽象方法要得以实现。

但是用抽象类的话,依然只能用到继承,而java偏偏是单继承,所以下面我们来介绍可以多继承的接口。


接口:

  • 接口中所有的方法都是抽象的,不过接口中可以不写abstract,在接口中所有方法都会被默认成abstract。

下面定义A接口:

public interface A {
    void delete();  //默认带有abstract,就是抽象方法,同样也需要子类去实现接口中方法
    void add();
    void update();
    void query();
}

B类去实现A接口:

ppublic class B implements A {

    @Override
    public void delete() {
        System.out.println("delete");
    }

    @Override
    public void add() {
        System.out.println("add");

    }

    @Override
    public void update() {
        System.out.println("update");

    }

    @Override
    public void query() {
        System.out.println("query");

    }
}

在这里插入图片描述
在这里插入图片描述

同时在我们定义这些抽象方法的时候左边出现了一个绿色I图标,箭头朝下,通过点击可以索引到那些实现这些抽象方法的地方,而在实现接口的类中重写这些方法在左边也出现了一个绿色图标,箭头朝上,通过点击可以找到这些抽象方法具体在哪个接口。这样就形成了首尾呼应。
另外,如果一个接口他其中只有一个方法,就可以使用lambda表达式去简化。


要想实现多继承,只需要在implements后面再写一个接口的名字即可,这样就可以在java中实现多继承了!

public class B implements A, C{
...
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海学识

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值