抽象类与接口

简介: 抽象类与接口

抽象类与接口

绪论:

抽象类接口是有紧密关糸的,接下来我们先从抽象类说起。

抽象类通常是作为其他类的一个父类,将其他类的方法进行一个声明,但又不给出具体的方法体,非常类似与C++中的函数声明,只不过C++的函数声明是可以放在任意一个函数里边。

  • 需知如下知识点:
  1. 抽象类关键字abstract,无论是在成员变量还是具体方法,在前边加上一个abstract进行一个声明。
  2. 有抽象方法就一定有一个子类对其方法进行实现。
  3. 抽象类属于一个顶层归纳功能,方便大项目多成员同时进行代码维护。

例子

我们首先定义一个抽象类Abs,在里面定义两个抽象方法

abstract class Abs{
    abstract void show();
    abstract void show(int i);
}

我们接下来要实现这两个方法,我们需要一个子类Real,在子类去实现这两个方法:

public class Real extends Abs{//子类继承抽象类
    int x;
    void show(){//无参
        System.out.println("x="+x);
    }
    
    void show(int i){//有参
        x=i;
        System.out.println("x="+x);
    }
}

接下来补充好我们的测试类Test

public class Test {
  public static void main(String []args) {
    Real a=new Real();
    Real b=new Real();
    a.show();
    b.show(2);
  }
}

为什么我们要有抽象类这个东西呢??

当我们在做大项目的时候,有很多很多子类和属性需要增加的时候,我们可以通过抽象类进行增加,然后让其他开发人员自己扩充一个子类完成新的方法。比如我们在做游戏的时候,需要增加一个人物的技能属性,我们只需要让管理抽象类的程序员新增加一个方法,其余的事又可以找另外一个程序员进行子类扩充和方法实现,在大项目里非常方便!

目录
相关文章
|
Kubernetes 负载均衡 应用服务中间件
【K8S系列】第十三讲:Ingress详解
【K8S系列】第十三讲:Ingress详解
8325 0
|
Kubernetes 负载均衡 网络协议
在k8S中,Servic类型有哪些?
在k8S中,Servic类型有哪些?
|
XML Java 关系型数据库
spring6-事务
Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作
191 0
spring6-事务
|
设计模式 算法 搜索推荐
抽象类与接口:设计模式的基石
在面向对象设计中,抽象类和接口是多态和封装的核心。抽象类是不能实例化的类,提供子类共享的实现和抽象方法,确保子类间的共性。接口仅定义方法签名,强制实现类提供具体实现,促进松耦合。两者在实现方式、继承和设计目的上有所不同,常用于工厂、策略等设计模式,如策略模式中通过接口动态选择算法,增强了代码灵活性。【6月更文挑战第16天】
211 8
|
存储 分布式数据库 数据库
深入OceanBase内部机制:分区构建高可用、高性能的分布式数据库基石
深入OceanBase内部机制:分区构建高可用、高性能的分布式数据库基石
|
负载均衡 监控 容灾
【SpringCloud】详解Eureka注册中心
【SpringCloud】详解Eureka注册中心
288 0
|
前端开发 安全 开发者
辛辛苦苦原创的网站,被抄袭了怎么办?
辛辛苦苦原创的网站,被抄袭了怎么办?
498 0
辛辛苦苦原创的网站,被抄袭了怎么办?
|
前端开发
前端学习案例1-三栏布局
前端学习案例1-三栏布局
207 0
前端学习案例1-三栏布局
|
容器
react-Ant Design框架项目中文字轮播与图片轮播的实现
在react-Ant Design框架项目中实现文字轮播和图片轮播,在这里记录一下,实现过程有一点小坑需要注意
805 0
react-Ant Design框架项目中文字轮播与图片轮播的实现
|
监控 容灾 数据中心
《云上容灾交付服务白皮书》——3交付标准化参考框架——3.3 容灾方案设计(上)
《云上容灾交付服务白皮书》——3交付标准化参考框架——3.3 容灾方案设计(上)
318 0