Java基础面试每日3题:day09

Posted 闲言_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础面试每日3题:day09相关的知识,希望对你有一定的参考价值。

1.Java中多态的运行机制是什么?

  靠的是父类或者接口的引用变量可以指向子类或者具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型定义的方法

2.抽象类(abstract class)和接口(interface)有什么区别?

  含有abstract 修饰符修饰的 class 即为抽象类,abstract类不能创建实例对象。含有abstract方法的类 必须定义为abstract class,abstract class 类中的方法不必是抽象的。abstract class类中定义的抽象方法必须在子类中实现,所以,不能有抽象静态方法和抽象构造方法。如果子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract 类型。

  接口,可以说成抽象类的一种特例,接口中的所有方法都必须是抽象的(注意:在Java 8 允许接口有默认方法和静态方法了,子类可以重写接口的默认方法)。接口中的方法默认定义为public abstract 类型,接口中的成员变量类型默认为public static final

  两者区别
1. 抽象类 可以有构造方法,接口中 不能有构造方法
2. 抽象类中 可以有普通成员变量,接口中 没有普通成员变量
3. 抽象类 可以包含非抽象的普通方法,接口中的所有方法 都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的方法类型可以是 public protected(private 私有的就不用说了,私有的话没有意义。默认 default 不行)。接口中的抽象方法只能是 public 类型的,并且默认即为public abstract 类型 。
5. 抽象类中 可以包含静态方法,接口中 不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量可以是任意的,但接口中定义的变量 只能是public static final 类型,并且默认即为 public static final 类型
7. 一个类只能 继承一个抽象类,但可以 实现多个接口

3.字符型常量和字符串常量的区别

  形式上: 字符常量是单引号引起的一个字符;字符串常量是双引号引起若干个字符

  含义上: 字符常量相当于一个整形值(ASCII值),可以参加表达式运算;字符串常量代表一个地址值(该字符串在内存中存放位置)

  占内存大小: 字符常量只占两个字节;字符串常量占若干个字节(至少一个字符结束标志)(注意:char 在Java中占两个字节

以上是关于Java基础面试每日3题:day09的主要内容,如果未能解决你的问题,请参考以下文章

Java基础面试每日3题:day02

Java基础面试每日3题:day07

Java基础面试每日3题:day03

Java基础面试每日3题:day10

Java基础面试每日3题:day13

Java基础面试每日3题:day01