Java基础知识问答题
java基础50题

java基础50题姓名:1. 关于Java语言的特征,描述正确的是A. 支持跨平台(Windows,Linux,Unix等)B. GC(自动垃圾回收),提高了代码安全性C. 支持类C的指针运算操作D. java语言是面向对象的语言2.下列表达式正确的是A. byte b=128;B. boolean b=null;C. long a = 2147483647L;D. float f=0.9239;3下列说法正确的有()A. class中的constructor不可省略B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被实例化时执行D.一个class只能定义一个constructor4. 执行完以下代码int [ ] x = new int[25];后,下列各项正确的是:A、 x[24]为0B、 x[24]未定义C、 x[25]为0D、 x[0]为空5. 实例化数组的方式正确的是A. int[] ia = new int [15];B. float fa = new float [20];C. int ia [][] = (4, 5, 6) (1, 2, 3);D. Object oa = new float[20];6. 下列代码的运行结果是:public class SwitchTest {public static void main (String []args) { System.out.println (“value =” +switchIt(4)); }public static int switchIt(int x) {int j = 1;switch (x) {case 1: j++;case 2: j++;case 3: j++;case 4: j++;case 5: j++;default:j++;}return j + x;}}A. Value =3B. Value =4C. Value =5D. Value =6E. Value =7F. Value =87. 下列不属于java标识符的是A.HelloWorldB._HelloWorldC. $HelloWorldD. HelloWorld3E. 3HelloWorld8. 给出下面的代码段:()public class Base{int w, x, y, z;public Base(int a, int b){x=a; y=b;}public Base(int a, int b, int c, int d) {<插入代码>w=d;z=c;}}在<插入代码>处写下如下代码,正确的是A.Base(a, b);B.x=a, y=b;C.x=a; y=b;D.this(a,b);9. 指出下列程序运行的结果public class Example{String str=new String("good");char[]ch={'a','b','c'};public static void main(String args[]){Example ex=new Example();ex.change(ex.str,ex.ch);System.out.print(ex.str+" and ");System.out.print(ex.ch);}public void change(String str,char ch[]){ str="test ok"; ch[0]='g';}}A. good and abcB. good and gbcC. test ok and abcD. test ok and gbc10. (继承)关于java中的继承说法正确的是A.子类不可以重写父类的方法B.构造方法是可以被继承的C.Java 只支持单继承,不允许多重继承。
Java简答题

Java简答题1、增强for循环在什么场合使用?用简单代码展现其使用方法。
参考答案:增强for循环可用来遍历数组或集合,如下所示:for(String s:sArray){System.out.println(s);}上述代码中的sArray是一个String类型的数组。
2、什么是泛型?泛型有什么作用?参考答案:泛型的本质就是参数化类型,也就是说把数据类型指定为一个参数。
在需要声明数据类型的地方,就可以不指定具体的某个类型,而是使用这个参数。
这样一来,就能够在具体使用时再指定具体类型,实现了参数的“任意化”。
泛型的好处是在编译的时候能够检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
3、线程之间通信的方法有哪几个?分别起到什么作用?参考答案:线程通信的方法有三个,在Object类中定义。
①wait 方法:使得线程进入等待状态。
②notify 方法:随意通知等待池中的某一个线程。
③no tifyAll 方法:通知等待池中所有线程。
4、使用java语言如何创建线程对象?请列出常用的两种方法。
参考答案:Java语言中经常使用两种方法创建线程。
①创建Thread类的子类,在子类中覆盖Thread类的run方法,实现线程的运行体,只要创建该子类对象就是线程对象。
②创建Runable接口的实现类,在实现类中覆盖接口中的run方法,实现线程的运行体。
使用Thread(Runable)构造方法可以创建线程对象,参数是Runable接口实现类的实例。
5、throws 关键字和 throw 关键字有什么区别和联系?参考答案:throw用来在方法体内抛出异常,而throws用来在方法声明处声明异常。
这两个关键字有着一定的联系。
如果一个方法中使用了throw关键字抛出了异常,那么要么立即用try/catch语句进行捕获,要么就是用throws进行声明,否则将出现编译错误。
然而,并不是只有使用了throw关键字之后才能使用throws关键字,语法上来说,任何一个方法都可以直接使用throws关键字,抽象方法也可以使用。
JAVA 习题题目及答案

第1章问答题及作业题第1章问答题1、发明Java语言的原因是什么?发明Java语言的主要贡献者是谁?2、“Java编译器将源文件编译生成的字节码是机器码”,这句话正确吗?3、Java程序的主类必须含有怎样的方法?4、“Java应用程序必须含有一个类是public类”,这句话正确吗?5、“Java Applet程序的主类必须是public类”,这句话正确吗?6、请叙述Java源文件的命名规则。
7、源文件生成的字节码在运行时都加载到内存中吗?8、怎样编写加载运行Java Applet的简单网页?9、JDK1.6编译器使用“-source”参数的作用是什么?“-source”参数的默认取值是什么?第1章作业题1.参照例1-1编写一个Java应用程序,程序能在命令行中输出“早上好,Good Morning”。
2.参照例1-2编写一个Java Applet程序,程序能在浏览器中显示“你好,Hello”。
第2章问答题及作业题第2章问答题1、什么是标识符?标识符的规则是什么?2、什么是关键字?请说出5个关键字。
3、Java的基本数据类型是什么?4、下列哪些语句是错误的?int x=120;byte b=120;b=x;5、下列哪些语句是错误的?float x=12.0;float y=12;double d=12;y=d;6、下列两条语句的作用是等价的吗?char x=97;char x=’a’;7、下列System.out.printf语句输出的结果是什么?int a=97;byte b1=(byte)128;byte b2=(byte)-129;System.out.printf(“%c,%d,%d”,a,b1,b2);8、数组是基本数据类型吗?怎样获取一维数组的长度?9、假设有两个int类型数组:int[] a=new int[10];int[] b=new int[8];b=a;a[0]=100;b[0]的值一定是100吗?10、下列两条语句的作用等价吗?int[] a={1,2,3,4,5,6,7,8};int[] a=new int[8];}第2章作业题1.参照例2-1编写一个Java应用程序,输出俄文字母表。
java试题库及答案

java试题库及答案Java试题库及答案一、单选题1. Java语言的特点是什么?A. 面向过程B. 面向对象C. 编译型语言D. 解释型语言答案:B2. 在Java中,用哪个关键字可以定义一个类?A. publicB. classC. voidD. int答案:B3. 下列哪个是Java的合法标识符?A. 2classB. class#2C. _class2D. class:2答案:C4. Java中的main()方法必须定义为什么类型的参数?A. intB. StringC. voidD. None答案:D5. 在Java中,哪个关键字用于实现异常处理?A. tryB. catchC. throwD. All of the above答案:D二、多选题6. 下列哪些是Java的基本数据类型?A. intB. StringC. floatD. boolean答案:A, C, D7. 在Java中,哪些是合法的数组初始化方式?A. int[] arr = new int[10];B. int arr[] = {1, 2, 3};C. int arr = {1, 2, 3};D. int arr = new int[3]{1, 2, 3};答案:A, B8. 下列哪些是Java的控制流语句?A. if-elseB. switch-caseC. forD. try-catch答案:A, B, C三、简答题9. 简述Java的垃圾回收机制。
答案:Java的垃圾回收机制是一种自动内存管理功能,它周期性地执行,回收不再使用的对象所占用的内存空间。
垃圾回收器会跟踪每个对象的引用,当对象的引用计数为0时,即没有任何引用指向该对象,垃圾回收器就会在下一次执行时回收该对象占用的内存。
10. 什么是Java的接口?它有什么作用?答案:Java中的接口是一种完全抽象的类,它不包含任何实现代码,只包含常量和抽象方法的声明。
常见的Java问答题

常见的Java问答题常见的Java问答题引导语;面试可以测试应聘者的Java的通用面向对象编程的能力,以下是店铺分享给大家的常见的Java问答题,欢迎阅读!1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。
Java源文件被编译成能被Java虚拟机执行的字节码文件。
Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。
Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。
2.JDK和JRE的区别是什么?Java运行时环境(JRE)是将要执行Java程序的Java虚拟机。
它同时也包含了执行applet需要的浏览器插件。
Java开发工具包(JDK)是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。
3.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。
Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。
static方法跟类的任何实例都不相关,所以概念上不适用。
4.是否可以在static环境中访问非static变量?static变量在Java中是属于类的,它在所有的实例中的值是一样的。
当类被Java虚拟机载入的时候,会对static变量进行初始化。
如果你的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。
5.Java支持的数据类型有哪些?什么是自动拆装箱?Java语言支持的8中基本数据类型是:byteshortintlongfloatdoublebooleanchar自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。
java基础试题

java基础试题一、选择题1. Java中用于创建新对象的关键字是()。
A. newB. thisC. classD. public2. 下列哪个选项是Java语言的特性?A. 多态B. 静态类型C. 自动内存管理D. 所有以上选项3. 在Java中,如果需要导入多个包,可以使用以下哪种方式?A. 每行导入一个包B. 用逗号分隔多个包C. 用分号分隔多个包D. 用括号包含多个包4. 下列关于Java异常处理的描述,哪项是正确的?A. try块可以单独存在,不一定要伴随catch块B. catch块可以捕获多种类型的异常C. finally块必须跟在catch块之后D. throw语句用于声明自定义异常5. 在Java中,下列哪个类是所有其他类的父类?A. ObjectB. SystemC. StringD. Math二、填空题1. 在Java中,每个类可以定义一个特殊的方法,该方法的名称是________,当创建类的新对象时会自动调用。
2. 如果需要在Java程序中处理用户输入,可以使用________类。
3. Java中的垃圾回收机制是自动的,这意味着程序员不需要显式地________内存。
4. 为了在Java中实现多线程编程,可以使用关键字________来定义一个线程。
5. 在Java中,所有的类都是定义在某个________文件中。
三、判断题1. Java中的接口可以包含具体的方法实现。
()2. 所有的Java类都是继承自ng.Object类的。
()3. 在Java中,如果一个类没有显式地指定构造方法,编译器会提供一个默认的无参构造方法。
()4. 所有的Java异常都是继承自ng.Exception类的。
()5. 在Java中,final关键字可以用来修饰方法,使其不能被重写。
()四、简答题1. 请简述Java中的封装性,并给出一个示例。
2. 解释什么是Java的继承,以及它的好处。
3. 请描述Java中的多态性,并给出一个实际应用的例子。
java基础面经典试题(附答案)
基础知识部分:1. JDK是什么?JRE是什么?a) 答:JDK:java开发工具包。
JRE:java运行时环境。
2. 什么是java的平台无关性?a) 答:Java源文件被编译成字节码的形式,无论在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。
也就是一处编写,处处运行。
这就是java的跨平台性。
3. 在一台电脑上配置java环境,path起什么作用?如何配置?a) 答:path的作用是在DOS环境下,能在任意位置使用JDK目录中b in文件夹中的可执行程序,来编译执行java程序。
b) 在环境变量中找到path变量,把bin文件夹的绝对路径加上即可。
4. 什么样的标识符是合法的?a) 由字母、数字、_和$组成,长度不限。
其中字母可以是大写或小写的英文字母,数字为0到9。
b) 标识符的第一个字符不能是数字。
c) 标识符区分大小写。
d) 标识符不能包含空格。
5. Java有几种基本数据类型?a) byte,short,int,long,float,double,char,boolean6. 什么是隐式类型转换?什么是显示类型转换?a) 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换。
b) 当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算。
7. &&和&区别,||和|区别?a) &&和||是短路与,短路或,当左边的表达式能判断当前结果,则不判断右边的表达式。
b) 而& 和|则将两边的表达式都运算完毕后,再算结果。
8. break,continue区别?a) break结束所有循环,continue结束当次循环,进入下次循环。
9. 类的命名规则是什么?a) 如果类名使用拉丁字母,那么名字的首写字母使用大写字母。
b) 类名最好见名知意,当类名由几个单词复合而成时,每个单词的首写字母使用大写。
10. 类体的内容由两部分构成,哪两部分?a) 一部分是变量的定义,用来刻画属性。
java理论试题及答案
java理论试题及答案Java理论试题及答案一、单选题1. Java语言的特点是什么?- A. 面向过程- B. 面向对象- C. 编译型语言- D. 解释型语言答案:B2. 在Java中,用哪个关键字可以定义一个类?- A. `class`- B. `interface`- C. `public`- D. `void`答案:A3. 下列哪个是合法的Java标识符?- A. `class`- B. `default`- C. `2things`- D. `class_name`答案:D4. Java中的继承是单继承还是多继承?- A. 单继承- B. 多继承- C. 既不是单继承也不是多继承- D. 可以是单继承也可以是多继承答案:A5. Java中的异常处理机制是通过哪两个关键字实现的? - A. `try` 和 `catch`- B. `if` 和 `else`- C. `switch` 和 `case`- D. `for` 和 `while`答案:A二、多选题1. 下列哪些是Java的基本数据类型?- A. `int`- B. `String`- C. `double`- D. `char`答案:A, C, D2. 在Java中,下列哪些可以作为方法的返回类型?- A. `int`- B. `void`- C. `String`- D. `double`答案:A, B, C, D3. 下列哪些是Java的访问修饰符?- A. `public`- B. `private`- C. `protected`- D. `default`(无修饰符)答案:A, B, C, D三、判断题1. Java程序的执行都是从`main`方法开始的。
()- 答案:正确2. Java中的所有类都是继承自`ng.Object`类的。
() - 答案:正确3. Java语言支持多重继承。
()- 答案:错误4. `final`关键字修饰的类不能被继承。
java基础简答题
Java 基础简答题Java 作为一种使用范围广泛的编程语言,其基础语法和知识点非常重要。
本文将介绍一些 Java 基础简答题,帮助读者更好地掌握 Java 语言的基础知识。
下面是本店铺为大家精心编写的4篇《Java 基础简答题》,供大家借鉴与参考,希望对大家有所帮助。
《Java 基础简答题》篇11. 什么是 Java 语言?Java 是一种由 Sun Microsystems 于 1995 年推出的面向对象的编程语言,其主要特点是平台独立性和高度安全性。
Java 程序可以在不同的操作系统上运行,而不需要进行任何修改,这是因为 Java 程序被编译成中间代码 (字节码),然后在 Java 虚拟机 (JVM) 上运行。
2. 什么是面向对象编程?面向对象编程 (OOP) 是一种编程范式,其主要思想是将程序中的数据和操作数据的方法封装在对象中。
对象是 OOP 中最基本的概念,它由数据和方法组成。
方法用于操作对象的数据,而对象则可以继承其他对象的属性和方法。
3. Java 中的基本数据类型有哪些?Java 中的基本数据类型包括 byte、short、int、long、float、double、char 和 boolean。
这些数据类型都有不同的取值范围和占用空间大小。
4. 什么是变量?变量是用于存储数据的标识符,可以用来存储任何类型的数据,包括基本数据类型和引用类型。
在 Java 中,变量必须先声明后使用。
5. 什么是运算符?运算符是用于操作变量和表达式的符号。
Java 中的运算符包括算术运算符、关系运算符、逻辑运算符和位运算符等。
6. 什么是控制语句?控制语句是用于控制程序流程的语句。
Java 中的控制语句包括条件语句 (if、else if、else)、循环语句 (for、while、do-while) 和跳转语句 (break、continue、goto) 等。
7. 什么是数组?数组是一个由相同类型的元素组成的集合。
java基础试题及答案
java基础试题及答案Java是一种广泛应用的计算机编程语言,具有简单、可移植、面向对象、安全以及高性能等特点。
它在互联网、移动应用、企业级应用开发等领域都有着重要的地位。
为了帮助大家更好地掌握Java基础知识,以下是一些常见的Java基础试题及答案。
一、选择题1. 下列关于Java语言的特点,错误的是:A. Java是一种面向对象的语言B. Java具有可移植性C. Java是一种编译型语言D. Java具有垃圾回收机制答案:C2. Java程序的入口点是:A. public static void main(String[] args)B. public static void start(String[] args)C. public static void run(String[] args)D. public static void execute(String[] args)答案:A3. 下列关于Java包(package)的说法,正确的是:A. 包用于组织类和接口B. 包是Java中的关键字C. 一个Java文件只能属于一个包D. 包的命名必须与所在的文件夹相同答案:A二、填空题1. 关键字____用于定义类的继承关系。
答案:extends2. 在Java中,____用于创建对象的实例。
答案:new3. Java中,____可以用于捕获、处理异常。
答案:try-catch三、简答题1. 什么是面向对象编程?答:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将问题描述为一组对象的集合,通过对象之间的互相作用来解决问题。
面向对象编程主要包括封装、继承和多态三个基本特性。
2. Java的封装是指什么?答:封装是面向对象编程中的一种基本特性,指的是将数据和操作数据的方法放在一个类中,对外部隐藏内部的具体实现细节,只暴露必要的接口供外部调用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java 基础知识问答题包含的模块本文分为十九个模块,分别是:Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM,如下图所示:共包含208 道问答题,本文的宗旨是为读者朋友们整理一份基础知识的简单大纲,下面一起进入主题吧。
Java 基础1. JDK 和JRE 有什么区别?•JDK:Java Development Kit 的简称,Java 开发工具包,提供了Java 的开发环境和运行环境。
•JRE:Java Runtime Environment 的简称,Java 运行环境,为Java 的运行提供了所需环境。
具体来说JDK 其实包含了JRE,同时还包含了编译Java 源码的编译器Javac,还包含了很多Java 程序调试和分析的工具。
简单来说:如果你需要运行Java 程序,只需安装JRE 就可以了,如果你需要编写Java 程序,需要安装JDK。
2. == 和equals 的区别是什么?== 解读对于基本类型和引用类型== 的作用效果是不同的,如下所示:•基本类型:比较的是值是否相同;•引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.out.println(x==z); // falseSystem.out.println(x.equals(y)); // trueSystem.out.println(x.equals(z)); // true代码解读:因为x 和y 指向的是同一个引用,所以== 也是true,而new String()方法则重写开辟了内存空间,所以== 结果为false,而equals 比较的一直是值,所以结果都为true。
equals 解读equals 本质上就是==,只不过String 和Integer 等重写了equals 方法,把它变成了值比较。
看下面的代码就明白了。
首先来看默认情况下equals 比较一个有相同值的对象,代码如下:class Cat {public Cat(String name) { = name;}private String name;public String getName() {return name;}public void setName(String name) { = name;}}Cat c1 = new Cat("王磊");Cat c2 = new Cat("王磊");System.out.println(c1.equals(c2)); // false输出结果出乎我们的意料,竟然是false?这是怎么回事,看了equals 源码就知道了,源码如下:public boolean equals(Object obj) {return (this == obj);}原来equals 本质上就是==。
那问题来了,两个相同值的String 对象,为什么返回的是true?代码如下:String s1 = new String("老王");String s2 = new String("老王");System.out.println(s1.equals(s2)); // true同样的,当我们进入String 的equals 方法,找到了答案,代码如下:public boolean equals(Object anObject) {if (this == anObject) {return true;}if (anObject instanceof String) {String anotherString = (String)anObject;int n = value.length;if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0) {if (v1[i] != v2[i])return false;i++;}return true;}}return false;}原来是String 重写了Object 的equals 方法,把引用比较改成了值比较。
总结:== 对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而equals 默认情况下是引用比较,只是很多类重新了equals 方法,比如String、Integer 等把它变成了值比较,所以一般情况下equals 比较的是值是否相等。
3. 两个对象的hashCode() 相同,则equals() 也一定为true,对吗?不对,两个对象的hashCode() 相同,equals() 不一定true。
代码示例:String str1 = "通话";String str2 = "重地";System. out. println(String. format("str1:%d | str2:%d", str1. hashCode(),str2. hashCode()));System. out. println(str1. equals(str2));执行的结果:str1:1179395 | str2:1179395false代码解读:很显然“通话”和“重地”的hashCode() 相同,然而equals() 则为false,因为在散列表中,hashCode() 相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等。
4. final 在Java 中有什么作用?•final 修饰的类叫最终类,该类不能被继承。
•final 修饰的方法不能被重写。
•final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。
5. Java 中的Math. round(-1. 5) 等于多少?等于-1,因为在数轴上取值时,中间值(0.5)向右取整,所以正0.5 是往上取整,负0.5 是直接舍弃。
6. String 属于基础的数据类型吗?String 不属于基础类型,基础类型有8 种:byte、boolean、char、short、int、float、long、double,而String 属于对象。
7. Java 中操作字符串都有哪些类?它们之间有什么区别?操作字符串的类有:String、StringBuffer、StringBuilder。
String 和StringBuffer、StringBuilder 的区别在于String 声明的是不可变的对象,每次操作都会生成新的String 对象,然后将指针指向新的String 对象,而StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用String。
StringBuffer 和StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而StringBuilder 是非线程安全的,但StringBuilder 的性能却高于StringBuffer,所以在单线程环境下推荐使用StringBuilder,多线程环境下推荐使用StringBuffer。
8. String str="i"与String str=new String("i")一样吗?不一样,因为内存的分配方式不一样。
String str="i"的方式,Java 虚拟机会将其分配到常量池中;而String str=new String("i") 则会被分到堆内存中。
9. 如何将字符串反转?使用StringBuilder 或者stringBuffer 的reverse() 方法。
示例代码:// StringBuffer reverseStringBuffer stringBuffer = new StringBuffer(); stringBuffer. append("abcdefg");System. out. println(stringBuffer. reverse()); // gfedcba // StringBuilder reverseStringBuilder stringBuilder = new StringBuilder(); stringBuilder. append("abcdefg");System. out. println(stringBuilder. reverse()); // gfedcba 10. String 类的常用方法都有那些?•indexOf():返回指定字符的索引。
•charAt():返回指定索引处的字符。
•replace():字符串替换。
•trim():去除字符串两端空白。
•split():分割字符串,返回一个分割后的字符串数组。
•getBytes():返回字符串的byte 类型数组。
•length():返回字符串长度。
•toLowerCase():将字符串转成小写字母。
•toUpperCase():将字符串转成大写字符。
•substring():截取字符串。
•equals():字符串比较。
11. 抽象类必须要有抽象方法吗?不需要,抽象类不一定非要有抽象方法。
示例代码:abstract class Cat {public static void sayHi() {System. out. println("hi~");}}上面代码,抽象类并没有抽象方法但完全可以正常运行。
12. 普通类和抽象类有哪些区别?•普通类不能包含抽象方法,抽象类可以包含抽象方法。
•抽象类不能直接实例化,普通类可以直接实例化。
13. 抽象类能使用final 修饰吗?不能,定义抽象类就是让其他类继承的,如果定义为final 该类就不能被继承,这样彼此就会产生矛盾,所以final 不能修饰抽象类,如下图所示,编辑器也会提示错误信息:14. 接口和抽象类有什么区别?•实现:抽象类的子类使用extends 来继承;接口必须使用implements 来实现接口。