java小白抽象和接口

一、概念

假如,我们现在要创建一个动物类,我们明确知道动物都有的行为:吃、活动等。但是对于我们这个动物类,吃,活动这些行为都是抽象的,并不具体,所以我们创建的这个动物,是一个抽象的事物,但是当我们看见一个具体的事物,一只小猫,我们就知道它喜欢吃鱼,它是四条腿走路的。但是相对于动物这个类,我们并不知道它吃什么,怎么活动,所以动物这个类就是一个抽象类,而动物类的方法也是一个抽象的方法,它没有明确的实现方式,只有当它的子类猫类继承之后,这个吃的方法才有明确的功能,才可以实现。这就是抽象的概念,

在实际的编程当中,我们一般都是先声明了好几个不同的类,比如:猫、狗、牛等,然后认为这三个类可以提取出一些相同的方法来被其他动物类来实现,就会抽象一个动物类,把相同的方法做成抽象类,供其他类来重写实现。这就是抽象的作用。

抽象方法:Java中只有方法的声明,没有方法体的方法叫做抽象方法, 这种方法被abstract关键字修饰。

抽象类:被abstract关键字修饰的类叫做抽象类。

注意:如果类中有抽象方法,那么该类一定是抽象类,但是抽象类也可以没有抽象方法。

二、作用

1.抽象类不可以实例化(创建对象)需要通过子类向上转型的方式处理,也就是需要创建多态对象来处理。

2.抽象类多用于被子类继承,这样就可以通过创建多态对象(也就是父类的声明,子类的实现)来调用方法。

3.当抽象父类被子类继承之后,父类中的抽象方法就继承给了子类,子类有两种解决办法,1.把自己也变成一个抽象类,再由其他子类继承。2.实现所有父类的抽象方法,也就是重写父类的抽象方法,并补充方法体,实现功能。

4.抽象类可以有构造方法,但是抽象类的构造方法不是用来由本类实例化调用的,因为抽象类就不能实例化对象,它是用来让它的子类调用的。.

三、接口

1.概念:接口的关键字是interface,它是抽象对象和常量的集合,顾名思义,接口里面的成员变量全是静态常量,默认拼接public static,接口里面的方法全是抽象方法。

2.作用:

        1)一般接口都会有一个实现类,通过implement和接口建立实现关系,类似于继承。

        2)当类和接口建立关系,那类要么将自己变成一个抽象子类,要么实现接口里面的所有抽象方法。

        3)接口不可以创建对象

        4)接口没有构造方法,没有成员变量,可以说有静态常量。

        5)前面继承我们说到子类的构造函数默认有一个super(),来调用父类的构造方法,接口的实现类也同样有这么一个默认的super(),但是接口没有构造方法,那他调用的是谁的构造函数呢?答案是:每一个没有明确父类的类,它的父类都是object顶级父类,所以那个super()调用的就是object的构造函数。

        6)接口之间可以多继承。也就是一个接口可以继承两个以上的接口的全部抽象方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值