• 【Java】抽象类(abstract)、接口(interface)


    前言

    写在前面的话,不听b站老师的话,不写博客又加之不经常用JAVA,导致现在遗忘十分严重,古人云:亡羊补牢,为时未晚。故今日做补牢之举。勉之!


    一、抽象类

    抽象类类中可以没有抽象方法,但如果有抽象方法,则该类一定是抽象类。抽象方法只写方法的声明,具体实现交给子类(非抽象类)去实现。

    public abstract class Abstract {
        public abstract void run();
    }
    
    • 1
    • 2
    • 3

    如上,声明了一个run的抽象方法,具体的实现交给子类。

    public class Demo01 extends Abstract{
            @Override
            public void run()
            {
                System.out.println("一直努力的向前奔跑");
            }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    子类需要先继承抽象类(extends),然后重写父类中所有的抽象方法。

    抽象类的特点:

        1、抽象类中没有构造方法,所以不能够直接实例化对象
    
        2、抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类。
    
        3、抽象方法需要一个非抽象子类,来继承,重写方法。
    
        4、抽象类只能单继承,不能够多继承(Class cannot extend multiple classes)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    二、接口

    接口的本质是契约,最主要的重要是约束和实现的分离
    创建一个接口

    public interface Demo02interface {
        void walk();
    }
    
    • 1
    • 2
    • 3

    用到interface关键字,它和class是同级的。

    1、接口中没有构造方法,所以不能直接实例化对象,interface
    2、接口中只有常量 public static final
    3、接口中不能写方法体
    4、所有的方法默认都是抽象的
    5、子类需要用implements来使用接口,同时要重写(@Override)接口的方法
    6、接口可以实现多继承 接口要用,来分隔(多继承确实牛啊)

    接口的多继承

    public class Demo03 implements Demointerface,Demo02interface{
        @Override
        public  void run()
        {
            System.out.println("我一直在努力的奔跑");
        }
        public void walk()
        {
            System.out.println("走累了,就歇一会");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    总结

    前路茫茫,与君共勉 安静的进步,快乐的学习

  • 相关阅读:
    Jenkins自动化部署
    Centos7.9安装mysql5.7.35记录
    Docker磁盘空间不足如何解决
    MyBatis缓存
    ros学习笔记(二)Vscode中使用Romote远程开发调试Ros2环境
    (Golang) 牛客 在线编程 Go语言入门
    k8s--基础--27.2--企业级devops平台--安装jenkins
    轻量化动态编译库 Natasha v8.0 正式发布!
    【算法萌新闯力扣】:旋转字符串
    Spring Cloud | 实现Eureka Server 高可用服务注册中心全套解决方案
  • 原文地址:https://blog.csdn.net/m0_59792745/article/details/126091806