JAVA选择题笔试:static成员与非static成员、父类子类方法的继承、接口与抽象类、final的使用

news2025/1/12 4:01:50

0、前言

        本文针对一些java基础知识的一些考点做出解析。

1、静态成员 与 非静态成员

        静态变量与静态方法都是静态成员。

 先说静态变量与普通成员变量的区别,例如如下两个变量:

public class Demo {
    public static String A = "静态变量";
    public String B = "实例变量,又称成员变量";
}

        A是静态,B是成员,从jvm层面来讲,他们有以下区别:
理解原理:

  1. 静态变量是在类加载时创建的:随着类的消失而消失,静态变量与类共存亡。
    成员变量是在对象创建后而存在的,:随着对象被回收而释放,成员变量与对象共存亡。
  2. 由第一点可推导:

    静态变量可以被对象调用,也可以通过类名直接访问(因为无需创建对象static变量就存在)

    成员变量因为是在类的实例化过程中创建的,所以需要通过类的实例(也就是对象)调用,没有实例化就没法调用。
     
  3. 静态方法内不能直接调用非静态方法,因为没有创建实例对象(如果调用,将不知道非静态方法属于哪个对象,所以会报错。)
    public class Demo {
        public static void staticMethod() {
            // 直接调用非静态方法:编译报错
            instanceMethod();
        }
        public void instanceMethod() {
            System.out.println("非静态方法");
        }
    }

    相对的,成员方法(非静态方法)能够直接调用静态方法。

总结:静态方法只能访问静态成员(包括静态变量和静态方法)
           实例方法则可以访问实例成员(包括实例变量和实例方法)以及静态成员。

2. 父类子类方法的继承重写问题

         看一个简单的例子,我们知道,子类重写父类方法必须”三个同“的特点:
         返回类型、名称、输入参数都相同。

class A{
    public void sb(){
        System.out.println("A.sb");
    }
}
class B extends A{
//1.普通的重写
//    public void sb(){
//        System.out.println("B.sb");
//    }
    
//2.名称、输入参数一样,但返回类型不同:重写失败。编译错误
//因为虽然返回类型不同,但系统调用sb的时候无法区分是父子哪个sb方法,并且这也不是方法重载。
//但要注意,如果返回类型是父类的派生类,也是可以的。
    public int sb(){
        System.out.println("BBB");
        return 10;
    }

//3.只要输入参数不同,就已经不是同一个sb方法,尽管名称都叫sb:
// 不是重写,但能编译,相当于新方法(即,方法重载)
// 例如,我们可以通调用sb(10)和sb()这两种方式对应两个sb方法,这是可以区分的
    public void sb(int input){
        System.out.println(input);
    }
//同理:
    public int sb(int input){
        System.out.println(input);
        return 1;
    }
}

其他补充:

        只有返回类型不同的方法并不足以使方法成为重载,重载要求参数列表必须有所区别。

3、接口与抽象类

接口的性质:
        接口内的字段(常量)类型都必须是public static final的。Java8开始,可以省略,直接定义常量。如int a = 1;

区别:

  1. 定义方式:抽象类使用 abstract 关键字定义,可以包含抽象方法和具体方法;接口使用 interface 关键字定义,只能包含抽象方法和常量。

  2. 实现方式:一个类可以继承(extends)一个抽象类,并且可以同时实现多个接口(implements)。

  3. 构造方法:抽象类可以有构造方法,而接口不能有构造方法。抽象类的构造方法在被子类实例化时会被调用。

  4. 方法实现:抽象类中的抽象方法可以由子类选择性地实现或覆盖,而接口中的所有方法必须在实现类中被实现

  5. 属性和变量:抽象类可以有实例变量、静态变量和普通方法,而接口只能有常量(public static final)和抽象方法。

  6. 设计目的:抽象类用于创建具有共同特征的类之间的继承关系,它可以提供默认的实现和通用的行为;接口用于定义类应该具备的行为,以实现多态性和代码重用。

  7. 多继承:一个类只能继承一个抽象类,但可以实现多个接口。这是因为Java不支持多重继承,但可以通过实现多个接口来达到类似的效果。

4. 数据类型大小

        红字代表字节数,1字节==8位

 

 5.final与static

        对于final类型的变量,如果不加static,可以有两种方式给它赋值:
        (1)声明变量时直接赋值(2)在构造方法中完成赋值(全部的构造方法都得赋值)

        而如果是static类型的final变量,那么类初始化的时候就必须赋值了 ,所以只有"方法(1)"

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

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

相关文章

迅镭激光高功率切割机成功交付招商重工,助推船舶行业智造升级!

近日,迅镭激光-招商重工高功率激光切割机交机仪式在招商局重工(江苏)有限公司顺利举行。 招商重工项目负责人佘刚林、孙宗宇,迅镭激光总经理助理刘富生、营销中心行业总监杨林等领导参加交付仪式,共同见证了这一激动人心的时刻。 本次交付的机…

日历组件 el-calendar 实现标记功能

需求:在日历组件中选择月份时,可以显示当月已经质检或需质检的数据 思路:前端每次点击日期选择器的时候调用接口,接口返回当月需要质检或已质检的数据,前端拿到数据就开始做判断然后回显。 大体样式 代码&#xff1a…

【每日一短语】给某人严重的惊吓

1、短语及释义 scare the pants off sb. 释义: 把某人的裤子吓掉;引申为严重的惊吓 2、示例及出处 美剧:《生活大爆炸》第八季第2集 The Big Bang Theory, Season 8 Episode 2 Leonard Hofstadter: I think the idea that someone could be …

【操作指南】EasyNTS上云网关如何删除日志?

EasyNTS上云网关主要包括两个部分:第一部分是软硬结合的EasyNTS上云网关设备。EasyNTS上云网关有单独的软件部分,具有拉转推功能,用户可集成部署在自己的硬件终端和业务系统中,也有软硬一体的硬件部分,根据需求直接配置…

CSS中伪元素详解和用法例子详解

文章目录 一、伪元素介绍二、::before和::after三、::first-line和::first-letter四、::selection五、::placeholder 一、伪元素介绍 伪元素:用于创建一些不在DOM树中的元素,并为其添加样式。 二、::before和::after ::before 伪元素可以用来创建一个…

浅谈 Android Tombstone(墓碑日志)分析步骤 - 02

tomestone 日志: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: qti/trinket/trinket:11/RKQ1.211119.001/37:user/test-keys Revision: 0 ABI: arm Timestamp: 2023-06-19 23:47:310800 pid: 742, tid: 32482, name: CAM_M…

Spring Bean的生命周期解读

目录 1. Spring IOC容器 1.1 Spring IOC 容器的设计 1.1.1 BeanFactory 1.1.2 ApplicationContext 1.2 Spring Bean的生命周期 1.2.1 BeanDefinition 1.2.2 InstantiationAwareBeanPostProcessor和BeanPostProcessor 1.2.3 测试生命周期 1. Spring IOC容器 1.1 Spring …

【前端工程化】深入浅出vite(一)--vite的优点及原理、性能优化

Vite 需要 Node.js 版本 14.18,16。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。 背景 webpack支持多种模块化,将不同模块的依赖关系构建成依赖图来进行…

帮助中心对企业有用吗?

帮助中心一般是指产品的说明或者使用帮助,客户在利用一些网站的功能或者服务时往往会遇到一些看似很简单,但不经过说明可能很难搞清楚的问题,企业有时甚至会因为这些细节问题的影响而失去用户,其实在很多情况下,只要经…

如何添加mathtype到往word菜单?

mathtype6.9安装完事,总是不在word中显示菜单,网上搜了好几个教程,步骤各不相同,索性自己试了一遍,整理了下关键步骤,做个备份,下次直接看自己的经验! 把math type安装目录中&#…

MySQL中常用工具

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

LeetCode 15.三数之和

文章目录 题目描述解题思路代码 题目描述 链接&#xff1a;https://leetcode.cn/problems/3sum 解题思路 排序 双指针 注意点&#xff1a;去重 代码 public IList<IList<int>> ThreeSum(int[] nums) {// 结果数组List<IList<int>> result new Li…

Nacos 2.x版本 配置中心和服务注册与发现 源码解析

一、配置中心源码解析 1.首先找到nacos读取配置的入口 1&#xff09;找到nacos-config包下的spring.factories中的NacosConfigBootstrapConfiguration 2&#xff09;NacosConfigBootstrapConfiguration会做两件事情&#xff0c;加载完成两个bean&#xff0c;一个是NacosConfi…

2023品牌新媒体矩阵营销洞察报告:流量内卷下,如何寻找增长新引擎?

近年来&#xff0c;随着移动互联网的发展渗透&#xff0c;短视频、直播的兴起&#xff0c;新消费/新零售、兴趣电商/社交电商等的驱动下&#xff0c;布局线上渠道已成为绝大多数品牌的必然选择。 2022年&#xff0c;越来越多的品牌加入到自运营、自播的行列中&#xff0c;并且…

【线性代数】快速复习笔记

线性代数快速复习 行列式行列式的基础计算某行&#xff08;列加上或减去另一行&#xff08;列的几倍&#xff0c;行列式不变某行列乘k,等于k乘此行列式互换两行列&#xff0c;行列式变号 行列式的性质1 主对角线是X&#xff0c;其余是其他常数a2 范德蒙德行列式3 行列式加减法4…

Linux中安装配置启动Redis

Linux中安装配置启动Redis 一、下载redis 使用命令下载&#xff1a; wget https://download.redis.io/releases/redis-6.0.10.tar.gzls du sh redis-6.0.10.tar.gz解压 [rootnode02 ~]# tar xzf redis-6.0.10.tar.gz [rootnode02 ~]# cd redis-6.0.10 [rootnode02 redis-6.…

低代码:改变未来的智慧力量!打造智能产业新纪元!

前言 在数智时代的浪潮中&#xff0c;智慧产业成为推动经济发展的重要引擎。随着科技的不断进步&#xff0c;传统工厂也在加速转型为智能工厂&#xff0c;实现产业体系的智能化建设已经成为当今企业追求的目标。 概念 产业体系智能化是指借助信息技术手段&#xff0c;对传统产业…

redis高可用(二)

redis高可用&#xff08;二&#xff09; 一、主从复制 1.概念 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(Master)&#xff0c;后者称为从节点(Slave)&#xff1b;数据的复制是单向的&#xff0c;只能由主节点到…

Dlib —— 对图片进行人脸检测并绘出特征(附C++源码)

效果 注意&#xff1a;Dlib检测人脸在Release版耗时与CPU有关,本人I7 10代约100ms左右。建议人脸检测可以考虑使用Yolov5进行&#xff0c;之后将检测到的人脸输入给Dlib做特征或其他。 代码 #include <iostream>#include <dlib/image_processing/frontal_face_detecto…

【胖虎的逆向之路】——GOT/PLT Hook详解针对自定义so库的Hook实操

文章目录 [TOC](文章目录) 前言一、ELF 是什么&#xff1f;1、ELF 的概念2、ELF 的组成2.1、 两种视图是什么呢&#xff1f;2.2、 ELF文件头又是什么西西&#xff1f;2.2、 ELF中节头表是什么南南呢&#xff1f;2.2、 ELF中程序头表是什么北北呢&#xff1f; 二、动态库装载、动…