针对抽象编程与对应的好处

简介: 针对抽象编程与对应的好处

针对抽象编程与对应的好处

简介:针对抽象编程与对应的好处。

代码讲解

下面的代码就是使用抽象编程,我们把基类定义为抽象类,然后了当子类继承的时候,需要重写基类里面的方法,不然会报错。

abstract class Graphics {
    // 定义一个抽象方法
    public abstract double getArea();。
}
class Circle extends Graphics{
    double r;
    Circle(double r)
    {
        this.r = r;
    }
    public double getArea() 
    {
        return r * r * 3.14;
    }
}
class Rectangle extends Graphics
{
    double a,b;
    Rectangle(double a,double b)
    {
        this.a = a;
        this.b = b;
    }
    public double getArea() 
    {
        return a*b;
    }
}

下面是没有子类没有重写基类的抽象方法

import java.io.*;
import java.util.*;
abstract class Graphics {
    // 定义一个抽象方法
    public abstract double getArea();。
}
class Circle extends Graphics{
    double r;
    Circle(double r)
    {
        this.r = r;
    }
    // public double getArea() 
    // {
    //     return r * r * 3.14;
    // }
}
class Rectangle extends Graphics
{
    double a,b;
    Rectangle(double a,double b)
    {
        this.a = a;
        this.b = b;
    }
    public double getArea() 
    {
        return a*b;
    }
}
public class Main
{ 
    public static void main(String[] args)
    {
    }
}

运行结果

总结

针对抽象编程,可以使得在基类中的方法一定会被子类重写,这样的好处是,可以防止编写代码的时候子类忘记重写父类的某些方法。

同时对于设计者来说面向让类中每种可能的变化对应的交给抽象类的一个子类去负责,从而让类的设计者不再去关心具体的实现,更好的应对用户需求的变化,将某个类中经常因需求变化需要改动的代码分离出去。

相关文章
|
8月前
|
运维 Cloud Native Serverless
仅3步!即刻拥有 QwQ-32B,性能比肩全球最强开源模型
本文详细介绍如何将 QwQ-32B 开源模型部署到函数计算 FC(Function Compute),并通过云原生应用开发平台 CAP(Cloud Application Platform)实现 Ollama 和 Open WebUI 两个 FC 函数的部署。
|
JSON JavaScript 中间件
POST 请求如何处理表单数据?
【10月更文挑战第24天】POST请求处理表单数据需要客户端和服务器端的协同工作,客户端负责将表单数据正确地编码并发送给服务器,服务器端则需要准确地接收、验证和处理数据,并向客户端返回合适的响应。
568 1
|
JavaScript 索引
用原生js的postMessage实现iframe传值,也可以用于跨域嵌套iframe传值
用原生js的postMessage实现iframe传值,也可以用于跨域嵌套iframe传值
用原生js的postMessage实现iframe传值,也可以用于跨域嵌套iframe传值
|
设计模式 缓存 Java
全面解读:Java后台开发面试常见技术问题与应对策略
【4月更文挑战第17天】本文梳理了Java后台开发面试的常见技术问题,涵盖基础概念(JVM、多线程、集合框架)、框架与中间件(Spring、数据库、缓存)、设计模式与架构及问题解决能力。建议面试者巩固基础知识,理解框架原理,关注微服务、性能优化等领域,以展示专业素养和技术实力。同时,保持学习习惯,跟进技术前沿,以提升竞争力。
399 0
|
存储 城市大脑 安全
史上首金!阿里云分布式存储技术获中国发明专利金奖
阿里云分布式存储技术专利《一种分布式存储系统升级方法和装置》(专利号:ZL201511034171.7)获颁中国专利金奖,这是阿里云14年创业发展史上荣获的首个专利金奖。
1757 5
|
前端开发 JavaScript 关系型数据库
前端毕业设计|基于Vue+Nodejs实现游戏资讯平台(一)
前端毕业设计|基于Vue+Nodejs实现游戏资讯平台
285 0
|
人工智能 定位技术
如何将国家地图服务系统的EPS地图转为shp图层
如何将国家地图服务系统的EPS地图转为shp图层
3945 0
|
存储 Web App开发 JSON
生产上的问题你不会用 sourcemap 定位吗?(一)
生产上的问题你不会用 sourcemap 定位吗?
652 0
|
弹性计算 Java jenkins
Gradle从0入门到实战系列【十】集成Dockerfile构建Docker镜像
在工作中,我们会将SpringBoot程序打包成Docker镜像,这就需要在Gradle中配置Dockerfile构建程序,并且能将打包后的镜像部署并启动为一个容器,Gradle的插件能够帮我们完成这件事
1717 0
Gradle从0入门到实战系列【十】集成Dockerfile构建Docker镜像