Java常见面试题02-方法重写和方法重载的区别?方法重载能改变返回值类型吗?

方法重写和方法重载的区别?方法重载能改变返回值类型吗?

      A:Override方法重写和Overload方法重载的区别?

Overload是否可以改变返回值类型?可以

方法重写

•  子类中出现了和父类中一模一样的方法声明,也被称为方法覆盖,方法复写。

•  使用特点:

  •   如果方法名不同,就调用对应的方法

  •   如果方法名相同,最终使用的是子类自己的

父类方法重写格式:super.父类成员方法名

•  方法重写的注意事项

    父类中私有方法不能被重写

   子类重写父类方法时,访问权限不能更低(最好一致都是public)

   父类静态方法,子类也必须通过静态方法进行重写。

方法重载

     方法重载:本类出现的类名相同,参数列表不同的方法,与返回值无关。

      B:this和super的区别和各自的作用?

       this代表本类的对象引用,super代表父类的空间标识。可以理解为父类的引用,通过这个可以访问父类成员。

      场景:

         成员变量:

             this.成员变量

super.成员变量

          构造方法:

             this(…)

super(…)

          成员方法:

             this.成员方法

super.成员方法

面试题:看程序写结果

   虽然子类中构造方法默认有一个super();

初始化的时候,不是按照那个顺序执行的。

而是按照分层初始化进行的。

它仅仅要表示先初始化父类数据,在初始化子类数据。

结果:

      YXYZ

class X {

Y b = new Y();

X() {

System.out.print("X");②

}

}

class Y {

Y() {

System.out.print("Y");①

}

}

public class Z extends X (先初始化继承){

Y y = new Y();③

Z() {

//super

System.out.print("Z");④

}

public static void main(String[] args) {

new Z();

}

}

你get到了吗?

原文地址:https://www.cnblogs.com/rqy0526/p/10949325.html

时间: 2024-10-13 21:17:37

Java常见面试题02-方法重写和方法重载的区别?方法重载能改变返回值类型吗?的相关文章

JAVA常见面试题及解答-java开发

JAVA常见面试题及解答 Java的垃圾回收总结  浅谈Java中的内部类 1)transient和volatile是java关键字吗? 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: class T { transient int a;  //不需要维持 int b;  //需要维持 } 这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存. volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变.在多

【转载】JAVA常见面试题及解答(精华)

JAVA常见面试题及解答(精华) 1)transient和volatile是java关键字吗?(瞬联) 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: class T { transient int a;  //不需要维持 int b;  //需要维持 } 这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存. volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变.在多线程程序中,有时两个或更多的线程共

java常见面试题——java笔试题总结

注:本文转载自http://www.cnblogs.com/huajiezh/p/5790928.html,版权归其所有! Java常见面试题总结 一.Java基础 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. 3.说说你知道的几个Java集合类:list.set.queue.map实现类咯... 4.描述一下ArrayList和LinkedList各自实现和区别 5.Java中的队列都有哪些,有什么区别. 6.反射中,Class.forName和cl

献给 2018 还在艰苦奋斗的 Java 程序员,Java 常见面试题及答案!

1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被编译成能被 Java 虚拟机执行的字节码文件. Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译. Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性. 2.JDK和JRE的区别是什么? JDK: java开发工具包,包含了JRE.编译器和其它工具(如:jav

java常见面试题及答案(基础题122道,代码题19道)

JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派

java常见面试题

从网上转的一些java基础知识面试题: 1.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型的,因此不可以继承这个类.不能修改这个类.为了提高效率节省空间,我们应该用StringBuffer类 2.int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型).Int是java的原始数据类型,Integer是j

JAVA常见面试题及答案

1. 什么是 Java 虚拟机?为什么 Java 被称作是 “ 平台无关的编程语言 ” ? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程. Java 源文件被编译成能被 Java 虚拟机执行的字节码文件. Java 被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译. Java 虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性. 2.JDK 和 JRE 的区别是什么? JDK:   java 开发工具包 , 包含了 JRE 

java常见面试题2015(持续更新中。。。)

1.overwrite和overload的区别 Overload是重载,它用与现有成员相同的名称来声明属性或方法,但参数列表与原始成员不同. Override 主要用于父类和子类之间的方法重写,即指定属性或方法可以在派生类中重写,其参数列表要求相同. 2.类和对象区别 好像挺喜欢问,举个例子,类表示电脑,他的的基本属性包括cpu.存储器.输入输出设备 :而对象表示某种类型电脑,如戴尔.联想.惠普.苹果电脑.类是共性,抽象的:对象是具体的某事物. 3.HashMap和HashTable区别 1)h

java常见面试题——java常见笔试题

注:转载自http://www.cnblogs.com/yhason/archive/2012/05/08/2489932.html,版权归其所有! 5.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型的,因此不可以继承这个类.不能修改这个类.为了提高效率节省空间,我们应该用StringBuffer类 6.int 和 Integer 有什么区别 Ja