关于抽象类和接口(含1.8)

本文详细介绍了Java中的抽象类、接口及其之间的区别。抽象类可以包含普通方法、抽象方法以及构造方法,而接口则只能定义常量和抽象方法,且常量必须初始化。接口间可以多重继承,一个类可以实现多个接口。Java 1.8引入了默认方法和静态方法,增加了接口的灵活性。在实际编程中,抽象类适用于有部分共同行为的类,而接口更侧重于定义行为规范。
摘要由CSDN通过智能技术生成

1、抽象方法:
1-1、由关键字abstract修饰
1-2、只有方法定义,没有方法实现(没有方法体)
public abstract void fn();

2、抽象类:
2-1、 由关键字abstract修饰,不能实例化(不能new对象);
2-2、 成员变量可以是普通成员变量、常量、静态变量,但不能用abstract修饰;
2-3、 抽象类不一定由抽象方法,但有抽象方法类一定是抽象类;
2-4、可以定义构造方法,用于子类访问父类构造;
2-5、抽象类需要被继承,子类必须重写抽象类中的所有抽象方法,子类也可以是抽象类(但是没啥意义);

3、接口:
3-1、关键字interface;
3-2、不能实例化(new对象);
3-3、只能定义常量和抽象方法
1)常量:
public static final (也可以省略不写)但必须赋初值;
2)抽象方法:
修饰词必须是public,而且public abstract可以省略;
3-4、接口需要被实现,而且必须重写接口中的所有抽象方法(JDK1.8会多一些东西);
3-5、接口与接口之间可以继承,而且可以继承多个(逗号隔开)

4、区别
成员变量:

抽象类接口
普通、静态、常量只能定义常量(必须赋予初值)

构造方法:

抽象类接口
可以有这个真没有

关系区别:

  • 类与类:继承,单一继承,一个类只能继承一个抽象类
  • 类与接口:实现,多实现(一个类可以实现多个接口,接口之间用逗号连接)
  • 接口与接口:继承,多继承

成员方法:

抽象类接口
普通、抽象抽象方法、静态方法(JDK1.8),由default修饰的默认方法(JDK1.8)

default和static两种方法可以在接口内实现
而且,default默认方法是可以选择继承或者不继承的、静态方法只能被public修饰或者不写
这里是接口:
df是默认方法
aa是普通抽象方法
st是静态方法

public interface interfaceTest {
    default void df(){
        System.out.println("default");
        st();
    }
    public abstract void aa();
    static void st(){
        System.out.println("static");
    }
}

在这里插入图片描述
从图中可以看出是可选择的;
既然有了这两个新东西当然也有他们的用法:
在这里插入图片描述
不全,还在接触中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值