文章大纲
四: 下面那个选项替换到"here"可以让结果输出为:son
大家好,这里是IT学习日记,一个非双一流大学毕业的深漂族,年少曾憧憬大厂,面试过许多家公司,也曾踩过无数坑,深知面试技巧和知识广度与深度对一个应届生乃至工作多年的开发者的重要性。
故特意收集了各个公司、大厂的面试高频题,通过每天打卡的方式,和大家一起记录和学习,希望能够帮助到应届生和开发者们少走弯路,一起冲向大厂!!!
一:请选出下面关于重写和重载说法正确的选项
A: 在子类中,如果方法没有被public修饰符修饰,则该方法不能重载(Overload)
B: 重写(Override)只需要满足方法名和参数类型相同即可
C: 重写(Override)要求方法的方法名、参数(包括参数类型和参数顺序)、返回值类型都要相同
D: 有相同的方法名、参数名、参数类型则表示该方法被重写了
A选项错误: 重载方法与方法的修饰符和返回值类型无关,只跟参数列表(包括参数类型、参数顺序、参数个数)和方法名有关。
B选项错误: 重写发生在子类与父类或者子类和接口之间,要求如下(简称:两同两小一大原则):
两同: 表示重写的参数列表(包括参数类型、参数顺序、参数个数)和方法名需要相同。
两小: 表示方法的返回值类型要小于或等于父类的返回值类型和方法抛出的异常要小于或等于父类方法抛出的异常
一大: 表示重写的方法访问修饰符要大于或等于父类方法的修饰符
@Override注解时JDK自带的注解之一,用于重写的方法之上,如果方法不满足重写的条件,则编译不通过,在重写方法时,建议添加该注解,提高代码可读性。
D选项错误: 说法不正确,重写的方法需要遵循"两同两小一大"原则。
A: 重载方法的方法名必须相同
B: 重载方法的区别是参数列表(参数个数或者参数类型)
C: 重载方法的返回值必须一致
D: 重载方法的实现可以不一样
三:请选出下面说法正确的选项
A: 静态方法不能被重写
B: 静态方法不能被private修饰
C: 私有方法不能被重载
D: 静态方法不能通过对象进行调用
A选项正确: 静态方法可以被继承,但是不能被重写。因为静态方法是属于类级别的,在加载到JVM时就已经确定了,但重写是表现多态的一种方式,通过父类引用指向子类,然后在运行时再确定具体的类型从而执行不同的逻辑。
B选项错误: 静态方法和普通方法一样可以被public、protected,默认修饰符、private修饰。
C选项错误: 重载是表示相同的方法名有不同的参数列表的方法,与返回值类型和访问修饰符无关。
D选项错误: 静态方法是属于类级别的方法,可以通过类名和实例对象名调用(不推荐使用实例调用静态方法)。
四: 下面那个选项替换到"here"可以让结果输出为:son
public class DemoFather { private String name; public static void main(String[] args) { DemoFather item = new DemoSon(); // here } } class DemoSon extends DemoFather{ private String name; public String output(){ name = "son"; return name; } }
A: System.out.println(item.name);
B: System.out.println(item.output());
C: System.out.println(((DemoSon)item).output());
D: System.out.println((DemoFather)item).output());
五: 下面代码执行会输出什么结果?
class Parent { public Parent() { System.out.println("A"); } } public class Son extends Parent { public Son() { System.out.println("B"); } public static void main(String[] args) { Parent a = new Son(); a = new Parent(); } }
每日小结
不积跬步,无以至千里;不积小流,无以成江海。今天播种努力的种子,总会有一天发芽!
欢迎大家关注,如果觉得文章对你有帮助,不要忘记一键三连哦,你的支持是我创作更加优质文章的动力,希望大家都能够早日拿到心仪的Offer,有任何面试问题可以私信我,欢迎大家投稿面试题目哦!