Java -- 密封类、抽象类、接口

  • 首先,什么是密封类?
    可能有同学会说 :密封类当然就是“蜜蜂在这里插入图片描述”累啊!
    在这里插入图片描述
    你是在跟我开玩笑吗!!!
    密封类是被 final 关键字所修饰的类,兄dei~
    在这里插入图片描述

  • 密封类的特点
    1、密封类不能用作基类;
    2、就算派生类也被final所修饰也不可以,兄dei~
    在这里插入图片描述

  • 既然有密封类,那么肯定就有密封方法,那么什么是密封方法呢 ?
    在这里插入图片描述
    在这里插入图片描述
    注意 :被 final 修饰的方法是不能被 override(重写) 的;密封类和密封方法的存在就是为了防止有意的派生。

  • 我们来看一看,什么是抽象类 ?

在Java中,含有抽象方法的类被称为抽象类,抽象类被 abstract 关键字修饰,当然,抽象方法就是被 abstract 关键字修饰的方法。
在这里插入图片描述

  • 抽象类有什么特点 ?
    1、抽象类不能被实例化,也就是不能 new 对象;

    2、抽象类中可以既包含抽象方法,又包含非抽象方法;
    3、抽象类中可以定义实例变量;
    4、抽象类不能被密封,因为抽象类就是被用来作为基类使用的,所以它也不能被 private 修饰

  • 抽象类的派生类
    <1> 派生类如果是普通类,必须实现抽象类的抽象方法;
    <2> 派生类如果是抽象类,可以不实现基类的抽象方法。

  • 抽象方法有什么特点 ?
    抽象方法没有方法体,不含大括号

  • 接下来,就到了我么的接口部分,那么问题来了,什么是接口 ?
    接口呢,由 interface 关键字所定义,如下 :
    在这里插入图片描述

  • 接口的特点
    1、接口内的属性默认是 public static final 类型的;
    2、接口内的方法默认是 public abstract类型的。
    在这里插入图片描述
    加上大括号就报错了~
    3、接口是用来实现的,实现接口用 implements 关键字;
    4、接口的派生类必须实现接口的所有抽象方法;
    在这里插入图片描述
    5、接口解决了 Java 单继承的局限问题,派生类可以实现多个接口

class A implements B,C,D{
}

6、当派生类是接口时,可实现多继承,并且可以不实现父接口的方法
在这里插入图片描述

  • 抽象类和接口的区别 :
    1、接口内的方法,必须不能被实现,而抽象类可以有部分非抽象方法。
    2、抽象类只能继承一次,但是接口可以被实现或者继承多个。
    a.一个抽象类可以继承一个抽象父类,但是一个接口可以使用关键字
    extends继承多个接口
    b.抽象类是对类整体的抽象 而接口是对行为进行抽象
    c. 在接口中的成员变量和成员方法默认为public static final
    和public abstract
    d.抽象类当中的方法和成员变量没用明确要求。但是抽象类当中的
    方法不能是private.

猜你喜欢

转载自blog.csdn.net/xyxy66/article/details/83624652