Java面试题系列之基础部分(三)——每天学5个问题

Java基础部分学习的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法,这些都是最基本而且最易问到的,我们只要每天学一点点,日积月累知识面会更广。

网络配图

1、Overload和Override的区别。

Overload是重载的意思,Override是覆盖的意思,也就是重写。重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。

重写Override表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。

子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题;;子类方法的访问权限只能比父类的更大,不能更小;如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。

override可以翻译为覆盖,在使用覆盖时要注意以下几点:

(1)、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;

(2)、覆盖的方法的返回值必须和被覆盖的方法的返回一致;

(3)、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;

(4)、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

网络配图

overload对我们来说可能比较熟悉,可以翻译为重载,它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行;在使用重载要注意以下的几点:

(1)、在使用重载时只能通过不同的参数样式;例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同 一方法内的几个参数类型必须不一样,例如可以是fun(int,float),但是不能为fun(int,int));

(2)、不能通过访问权限、返回类型、抛出的异常进行重载;

(3)、方法的异常类型和数目不会对重载造成影响;

(4)、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话, 也只是定义了一个新方法,而不会达到重载的效果。

2、构造器Constructor是否可被override?

构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。

3、接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是 否可以有静态的main方法?

接口可以继承接口;抽象类可以实现(implements)接口,抽象类可以继承具体类;抽象类中可以有静态的main方法;只有记住抽象类与普通类的唯一区别就是不能创建实例对象和允许有abstract方法。

网络配图

4、String是最基本的数据类型吗?

基本数据类型包括byte、int、char、long、float、double、boolean和short。

java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类;为了提高效率节省空间,我们应该用StringBuffer类。

5、是否可以继承String类?

String类是final类故不可以继承。

原文发布于微信公众号 - Java学习网(javalearns)

原文发表时间:2018-01-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java小白

JAVA协变返回类型

2004
来自专栏owent

C++ 新特性学习(四) — Bind和Function

木有错,这是C++,并且很方便地实现了委托 这就是传说中的绑定库和增强型的函数对象 接下来一个一个来

1071
来自专栏python学习指南

python迭代器

本篇将介绍Python的迭代,更多内容请参考:Python学习指南 简介 在Python中,如果给定一个list或者tuple,我们可以通过for循环来遍...

2137
来自专栏小二的折腾日记

day5(面向对象2)

异常体系:Throwable |–Eroor |–Exception ...

482
来自专栏Rgc

python中赋值,深拷贝,浅拷贝区别

这三种不适合 int,str,float,bool等类型。因为这些类型在值改变后,被赋值的变量值不变。

1792
来自专栏LhWorld哥陪你聊算法

python 使用小结

使用Python 已经一段时间了 ,现将python 中可能用到的技巧和一些知识点分享如下。

1071
来自专栏程序员同行者

python3 内置函数详解

1823
来自专栏C语言及其他语言

【编程经验】共用体的定义和使用

在 C 语言中,允许几种不同类型的变量存放到同一段内存单元中,也就是使用覆盖技术,几个变量互 相覆盖。这种几个不同的变量共同占用一段内存的结构,被称为共用体类型...

942
来自专栏算法与数据结构

栈与递归 实现 十进制转二进制

6-4 十进制转换二进制(15 分) 本题要求实现一个函数,将正整数n转换为二进制后输出。 函数接口定义: void dectobin( int n ); 函数...

2955
来自专栏黑泽君的专栏

Java中如何通过一个类名来调用另一个类的静态方法?

所以,比如另一个类叫OtherClass,它的静态公有方法是 public static int MethodA() {...}

7244

扫码关注云+社区

领取腾讯云代金券