接口抽象类

java基础

**

接口抽象类

**

多态不急,在这里,我们来介绍抽象类和接口这两个东西!!!

      我们之前一直接触的都是类(class),那么根据需要,我们有时会创建抽象类或者接口。且听我细细道来这俩是什么鬼!!!

抽象类:abstract

    位置:

    特点:具有抽象方法,其它同类

那这个抽象方法是个什么鬼!!!

我们一般把我们不能理解,不能具象的事物称为抽象。我记得绘画中就有个抽象,就像这样—>

是不是我们不能理解,至于看出来什么只有自己知道。一千个人有一千个哈姆雷特,每个看到这副抽象画都有能看到一些自己的东西。

而Java中的这个抽象方法也和这个类似,给一个方法,具体东西让用的人去填,是不是就像那抽象派画家一样(手动嘚瑟^^)!!!

来,先上代码,看看这个怎么声明!!!


abstract class A{

	//普通方法
    public void talk(String str){
        System.out.println("A talk:"+str);
    }

	//抽象方法
    public abstract void talk();

}

来,

看到这抽象方法啥也没有么。所以它被称为抽象方法。

那么

注意:

    1、抽象类可以有抽象方法和普通方法(也可以没有)

    2、抽象类可以被抽象类继承

    3、抽象类可以被类继承,但必须重写所有抽象方法(将方法具象化)

    4、抽象类不能直接实例化(…)

抽象类就先到这,先看看接口

接口:

接口,我们俗称抽象的抽象

    特点:无普通方法,全为抽象方法

先上代码看看这接口


interface A{//声明接口

    public void talk();//抽象方法

}

注意:

    1、接口内不允许有非抽象方法

    2、接口不能直接实例化(…)

    3、接口不是继承关系,而是实现


interface A{

    public void talk();

}
class B implements A{

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

来,我们那接口和抽象类比较一下

方法关系关系数量实例化
抽象类有抽象方法继承extends单一继承×
接口全抽象方法实现implements可实现多个×

来段代码看看


interface A{

    public void talk();

}

interface B{
    
    public void talk();

}

abstract class C{
    
    public abstract void talk();

}

class G extends C implements A,B{
    
    @Override
    public void talk() {
        System.out.println("talk");
    }
    
}

最后,我们要注意封装关键字对接口抽象类的使用

    1、因为抽象方法的性质,抽象方法不能用private、final关键字

    2、相应的final不能用于抽象类和接口上

    3、接口内只能public关键字或默认

    4、接口内抽象方法不能使用protected

    5、抽象类可以implements多个接口,但接口不能extends抽象类

    6、接口通过extends继承(多个)父接口

 

 

 

说了这么多概念,什么时候用才是问题!!!

这个嘛

嗯嗯,这个嘛

“做人留一线,日后好相见”

这个代码也一样嘛

程序开发很难一次做到完美,我们尽可能给后面修改留有余地,这就需要我们三大特征

用抽象类还是接口,归根接地还是尽可能地职责分离,把业务抽象,也就是“面向接口编程”。

面向接口编程暂时不急,先会用接口即可

上一篇 》
方法重写与重载

下一篇

this和super关键字


final和static关键字


面向对象——多态

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值