java---final以及抽象类

final

   - 修饰变量:变量不能被改变

    //演示final修饰变量class Aoo{final int num = 5;void show(){//num = 55; //编译错误,final的变量不能被改变}}

    - 修饰方法:方法不能被重写

     //演示final修饰方法class Boo{final void show(){}}class Coo extends Boo{//void show(){} //编译错误,final修饰的方法不能被重写}

     - 修饰类:类不能被继承

     //演示final修饰类final class Doo{}//class Eoo extends Doo{} //编译错误,final的类不能被继承class Foo{}final class Goo extends Foo{} //不能当老爸,但能当儿子

static final

   - 必须声明同时初始化
   - 通过类名点来访问,不能被改变
   - 建议:常量名所有字母都大写,多个单词用_分隔
   - 编译器在编译时会将常量直接替换为具体的值,效率高
   - 何时用:数据永远不变,并且经常使用

   public class StaticFinalDemo {public static void main(String[] args) {System.out.println(Hoo.PI); //通过类名点来访问//Hoo.PI = 3.1415926; //编译错误,常量不能被改变//1)加载Ioo.class到方法区中//2)将静态变量num一并存储到方法区中//3)到方法区中获取num的值并输出System.out.println(Ioo.num);//编译器在编译时将常量直接替换为具体的值,效率高//相当于System.out.println(5);System.out.println(Ioo.COUNT);}}class Ioo{public static int num = 5; //静态变量public static final int COUNT = 5; //常量}class Hoo{public static final double PI = 3.14159;//public static final int NUM; //编译错误,常量必须声明同时初始化}

抽象方法

   - 由abstract修饰
   - 只有方法的定义,没有具体的实现(连{}都没有)

     抽象类和抽象方法的用法:

abstract class Shape {protected String color;public Shape(String color) {this.color = color;}public abstract double getArea();public void display() {System.out.println("This shape has color: " + color);}
}class Circle extends Shape {protected double radius;public Circle(String color, double radius) {super(color);this.radius = radius;}@Overridepublic double getArea() {return Math.PI * radius * radius;}
}class Rectangle extends Shape {protected double length;protected double width;public Rectangle(String color, double length, double width) {super(color);this.length = length;this.width = width;}@Overridepublic double getArea() {return length * width;}
}public class Main {public static void main(String[] args) {Circle circle = new Circle("Red", 5.0);circle.display();System.out.println("Area: " + circle.getArea());Rectangle rectangle = new Rectangle("Blue", 4.0, 6.0);rectangle.display();System.out.println("Area: " + rectangle.getArea());}
}

        在以上代码中,我们定义了一个抽象类Shape,它包含一个抽象方法getArea()和一个普通方法display()。抽象方法没有具体的实现,而是由具体的子类来实现。我们还定义了两个具体的子类CircleRectangle,它们继承自Shape类并实现了getArea()方法。在Main类中,我们创建了一个圆和一个矩形对象,并调用它们的display()getArea()方法来展示多态的效果。

抽象类:

   - 由abstract修饰

   - 包含抽象方法的类必须是抽象类

   - 抽象类不能被实例化(new对象)

   - 抽象类是需要被继承的,派生类:

     - 重写所有抽象方法--------------变不完整为完整
     - 也声明为抽象类------------------一般不这么做

   - 抽象类的意义:

     - 封装共有的属性和行为--------------------代码复用

     - 为所有派生类提供统一的类型-----------向上造型---代码复用

     - 可以包含抽象方法,为所有派生类提供统一的入口(能点出来)

       派生类的行为不同,但入口是一致的,同时相当于定义了一个标准

总结    

       静态变量(Static Variables)是属于类的变量,它们在类被加载时初始化,并且在整个类的实例之间共享。静态变量使用static关键字声明。其他类的实例可以通过类名直接访问静态变量,不需要创建对象的实例。

       静态变量的特点:

  1. 静态变量在内存中只有一份拷贝,被所有实例共享。
  2. 静态变量在类被加载时初始化,并且在整个类的生命周期内都存在。
  3. 静态变量可以通过类名直接访问,不需要创建对象的实例。

      抽象方法(Abstract Methods)是没有具体实现的方法,只有方法的声明,没有方法体。抽象方法使用abstract关键字声明。抽象方法必须在抽象类中声明,抽象类一般用于定义一组相关的类的共同行为和属性。

     抽象方法的特点:

  1. 抽象方法没有具体的实现,只有方法的声明,没有方法体。
  2. 抽象方法必须在抽象类中声明,抽象类一般用于定义一组相关的类的共同行为和属性。
  3. 抽象方法必须被子类实现(除非子类本身也是

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring整理-Spring Bean的作用域

在Spring框架中,Bean的作用域定义了Bean实例的生命周期和可见性。Spring提供了多种作用域选项,适用于不同的应用需求。 Spring中的主要Bean作用域 Singleton:默认的作用域。在Spring IoC容器中,对于每个Spring Bean配置,只创建一个实例。适用于无状态的服务,如配置、工具…

【机器学习】模型参数优化工具:Optuna使用分步指南(附XGB/LGBM调优代码)

常用的调参方式和工具包 常用的调参方式包括网格搜索(Grid Search)、**随机搜索(Random Search)和贝叶斯优化(Bayesian Optimization)**等。 工具包方面,Scikit-learn提供了GridSearchCV和RandomizedSearchCV等用于网格搜索和随机搜索的工具。另外,有一…

VS报错:error:LNK2005 _main 已经在 *.obj 中定义

应该是重定义了,但是又解决不了,看似又没有重定义啊,就在一个文件定义了啊?怎么会出现这种情况呢?关键是,编译报错,程序运行不了了。 这里提一下我的前期操作,是因为将一个头文件和…

云原生 微服务 restapi devops相关的一些概念说明(持续更新中)

云原生: 定义 云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。它是一种在云计算环境中构建、部署和管理现代应用程序的软件方法。云原生应用程序是基于微服务架构的,采用开源堆栈(K8SDocker)进行容器…

NULL是什么?

NULL是一个编程术语,通常用于表示一个空值或无效值。在很多编程语言中,NULL用于表示一个变量或指针不引用任何有效的对象或内存位置。 NULL可以看作是一个特殊的值,表示缺少有效的数据或引用。当一个变量被赋予NULL值时,它表示该变…

10年Java面试总结:Java程序员面试必备的面试技巧

作为一名资深10年Java技术专家,我参与了无数次的面试,无论是作为面试者还是面试官。在这里,我将分享我的一些面试经历和面试技巧,希望能帮助即将面临面试的Java程序员们。 本文已收录于,我的技术网站 ddkk.com&#x…

柳氏新论:慈不掌兵的两层含义

前几天在一个如何理解慈不掌兵的回答中,我提出了这句话实际上有两层含义。这个应该是我第一个提出的。所以单独摘录出来。 第一层含义,不能怕士兵伤亡 这一层,所有人都能理解。比如你是个连长,正在防守阵地,排长过来报…

CMake_02_如何编译可调试文件

软件开发过程中,调试是必不可少的环节之一,让可执行文件”明牌“执行,不会漏过每一行代码,每一个变量的信息。从而帮助开发者快速定位到问题点。 先看下没有调试信息的可执行文件是什么样子? rootlocalhost:~/testWo…

【面试宝典】图解ARP协议、TCP协议、UDP协议

一、ARP协议 二、TCP协议 三、UDP协议 四、TCP和UDP的区别

Linux Git打包部署JAVA项目 shell脚本

my-test-8080.jar.sh 脚本 #!/bin/bashBASE_PATH"/root/local"GIT_BASE_PATH"/root/local/publish/my-java-study"SCRIPT_NAME$(basename "$0")JAR_NAME"${SCRIPT_NAME%.sh}"BRANCH_NAME"dev"GIT_URL"gitgitee.com:xx…

LeetCode 36. 有效的数独

有效的数独 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 一次遍历法 有效数独的三个…

如何有效使用360评估

导语:360度评估是绩效考核方法之一,被评估者不仅可以从自己、上司、部属、甚至顾客处获得多种角度的反馈,也可从这些不同的反馈清楚地认识到自己的不足、长处与发展需求。但360度评估也有其适用的范围和条件,华为总裁任正非给出了…

抽丝剥茧设计模式-目录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 01 设计模式前言-设计模式源码02 Singleton单例03 Strategy策略04 FactoryMethod工厂方法-AbstractFactory抽象工厂05 Facade门面-Mediator调停者06 Decorator装饰器…

impala元数据自动刷新

一.操作步骤 进入CM界面 > Hive > 配置 > 搜索 启用数据库中的存储通知(英文界面搜索:Enable Stored Notifications in Database),并且勾选,注意一定要勾选,配置后面的配置不生效。数据库通知的保留时间默认为2天&#…

Nacos下载与安装【windows】

🥚今日鸡汤🥚 我不知将去何方,但我已经在路上。 ——宫崎骏《千与千寻》 目录 🥞1.Nacosdi地址 🌭2.GitHub下载 🍿3.目录结构 🥓4.启动nacos 🧂5.客户端登陆 &#x1f9c8…

GitHub 一周热点汇总第5期(2024/01/07-01/13)

GitHub一周热点汇总第5期 (2024/01/07-01/13),梳理每周热门的GitHub项目,这一周的热门项目都普遍比较年轻,有几个更是刚刚发布就火热起来了,一起来看看都有哪些项目吧。 #1 llm-course 项目名称:llm-course - 大语言…

华为路由器OSPF动态链路路由协议配置

R1配置 interface GigabitEthernet0/0/0ip address 10.1.12.1 255.255.255.252 interface LoopBack0ip address 1.1.1.1 255.255.255.255 ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 10.1.12.0 0.0.0.3 R2配置 interface GigabitEthernet0/0/0i…

特征工程-特征处理(一)

特征处理-(离散型特征处理) 完成特征理解和特征清洗之后,我们要进行特征工程中最为重要和复杂的一步了——特征处理 离散型特征处理 离散型特征通常为非连续值或以字符串形式存在的特征,离散型特征通常来讲是不能直接喂入模型中…

四川云汇优想教育咨询有限公司引领电商未来

四川云汇优想教育咨询有限公司,一家在电商服务领域崭露头角的领军企业,致力于为广大客户提供最优质、最全面的电商服务。作为业界翘楚,云汇优想凭借其卓越的服务品质和强大的技术实力,在激烈的市场竞争中独树一帜,赢得…

营业厅神秘顾客调查内容

本文由群狼调研(长沙神秘顾客调研公司)出品,欢迎转载,请注明出处。营业厅神秘顾客调查的内容可以包括以下方面: 1.服务质量评估:评估员工的服务态度、专业知识和沟通能力。观察员工对顾客的响应时间、礼貌程…