Java抽象类与接口

在Java中,一个没有方法体的方法叫做抽象方法,该类必须定义为抽象类

public abstract class animals{
            public abstract void eat ();//不包含方法体,注意代码中出现了两次abstract这一关键词
}

抽象类不是具体的,因此不能创建对象


抽象类的特点

在定义抽象方法时,方法和类都必须用abstract来修饰

抽象类里面也可以没有抽象方法

可以利用多态来进行创建对象

public class cat extends animals {
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}


public abstract class animals {
    public abstract void eat();
    public void action(){
        System.out.println("睡觉");
    }
}

public class test {
    public static void main(String[] args){
        animals cat = new cat();
        cat.eat();
        cat.action();
    }
}

子类要写完继承的抽象父类的所有抽象方法

抽象类的子类要么完成以上步骤,要么把自己也定义为有一个抽象类


抽象类的成员特点

抽象类里面可以有构造方法,构造方法用于子类访问父类的初始化

抽象类里面也可以有成员方法

父类的抽象方法限定子类必须做某些事情

抽象类中可以有成员变量,可以是变量也可以是常量(final修饰)、


接口

理解接口可以与插座类别以加深理解

接口是一种公共规范标准,只要符合标准,大家都可以通用

Java接口更多体现在对行为的抽象

接口的特点:

        

具体类多态几乎不用

 接口的成员特点

接口中的成员变量默认就是被final修饰的,因从接口中不存在变量

可以 直接通过接口名访问接口中的成员变量

接口里面不能有构造方法

如果说一个类没有父类,那么object就是它的父类

object类里面只有一个无参构造方法

所有的类都直接或者间接地继承着object这个类

因此就算父类中没有构造方法,子类中调用构造方法时也是可以的

public class interimpl implements inter {//等价于public class interimpl extends Object implements inter

}
注意object开头的o是大写

接口里面的成员方法只能是抽象的,且子类中要重写

接口里面的方法默认带了public abstract 这一修饰符

接口里面的方法可以直接如下
void show();


接口多态和抽象类多态只能调用自己本身有的方法,如果只有子类中有,那么就不能调用


类与接口的关系

类与类的关系

继承关系,只能单继承,但是可以多层继承

类与接口的关系

实现关系,可以单实现,也可以多实现,还可以在继承一个类时实现多个接口

public class interimpl implements inter1 , inter2 , inter3{
}

接口和接口关系

继承关系,可以单继承,也可以多继承

public interface inter1 extends inter2 , inter3 , inter4{
}

抽象类与接口的区别

抽象类成员:变量 常量 构造方法 抽象方法 非抽象方法

接口成员:常量 抽象方法

设计理念的区别:

抽象类是对类抽象,包括属性和行为

接口对行为抽象,主要是行动

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值