• java学习笔记(十)—— 抽象类、接口、内部类


    在之前的学习中,父类其实就是子类的抽象了,比如老虎和兔子都可以被抽象成动物。抽象类是更进一步的抽象,而接口是在抽象类的基础上又抽象了一层。

    一、抽象类和抽象方法

    1.抽象方法只有方法名,没有方法体

    1. //抽象类
    2. public abstract class Person {
    3. //无参构造函数
    4. public Person(){
    5. }
    6. //有参构造函数
    7. public Person(String name){
    8. }
    9. //抽象方法
    10. public abstract void run();
    11. //非抽象方法
    12. public void sayHello(){
    13. System.out.println("hello,the last day of June");
    14. }
    15. }

    2.只要该类包含一个抽象方法,那么这个类就是抽象类(that is to say,抽象类里可以有非抽象方法)。

    3. 抽象类存在构造器(构造函数)吗?

    有,并且有参无参都可以有。因为其子类实例化的时候要先调用父类的构造函数,也就是抽象类的构造函数,所以抽象类是有构造函数的。

    4. 抽象类不能被实例化(虽然它有构造方法),只能作为其他类的父类

    5. 但是由于类只能单继承的局限性,抽象类用的没有接口多接口可以实现多继承)。

    6. 子类实现抽象类依然是extends关键字

    二、接口

    1. 接口只能写“规范”,都是抽象方法,无法写具体的实现(不能出现非抽象的方法)。

    2. 接口内的方法默认都是被“public abstract”修饰,可以不写;接口的属性默认都是被“public static final”修饰。but在抽象的时候一般只抽象方法,不会在接口里写属性。

    3. 实现类用implements关键字,必须实现接口规定的所有方法

    4. 接口没有构造函数,自然无法实例化(抽象类有构造函数,也不能实例化)。

    5. 利用接口实现多继承。在下例中,当前类必须要实现UserService和TimeService的所有方法。

     

    三、内部类

    概念不用硬记,可以后续慢慢了解

     1. 成员内部类

    1)内部类如何实例化?

     2)内部类可以获得外部类的private属性

     2. 静态内部类

    静态内部类不能获得外部类的private方法,因为静态类加载的时候id还没加载。

    3. 局部内部类

    在方法中的类

    4.匿名内部类

     

  • 相关阅读:
    消防宣传科普|消防安全知识网上答题挑战赛活动方案
    React之组件实例的三大属性之rel
    (JavaEE)线程的状态
    入门力扣自学笔记109 C++ (题目编号1161)
    这一次,大模型颠覆广告行业!
    如何使用html、css制作一个期末作业网站【羽毛球体育运动主题html网页设计】
    TCP延迟应答和捎带应答及“粘包问题“和TCP异常
    新功能:医疗单据OCR识别-关键信息高亮显示
    微服务·数据一致-事务与分布式事务
    将项目部署到Windows操作系统中,并且访问该项目
  • 原文地址:https://blog.csdn.net/qq_44886213/article/details/125547123