`
xiaomogui
  • 浏览: 242726 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java面试之overloading和overriding

阅读更多

1. 重载:

   同一个类中的多个方法名字相同,参数类型或者参数个数不同。调用方法是根据参数的个数和类型决定执行那个方法。

   不同的返回值类型不能判读是否重载。

2. 重写:

   子类和父类之间,如果子类方法的名字,参数类型和个数,返回值相同,则说明该子类重写了父类的方法。

   父类的final方法不能重写

 

3. 重载和重写是java多态的一种表现形式。

 

4. 类实例的引用就是指向一个句柄(handle)的指针,这个句柄是一对指针: 
          一个指针指向一张表格,实际上这个表格也有两个指针(一个指针指向一个包含了对象的方法表,另外一个指向类对象,表明该对象所属的类型); 
          另一个指针指向一块从java堆中为分配出来内存空间。

5. Java中除了static和final方法外,其他所有的方法都是运行时绑定的。private方法都被隐式指定为final的(这样说我也没有依据),因此final的方法不会在运行时绑定。当在派生类中重写基类中static、final、或private方法时,实质上是创建了一个新的方法。

6. 构造方法是被隐式声明为static方法(对不对)。

    父类:

public class Test12 {
	Test12(){
		System.out.println("父类的构造()方法======");
	}
	public void test1() {
		System.out.println("父类的test1()方法======");
	}

	public void test2() {
		System.out.println("父类的test2()方法======");
	}

	public static void test3() {
		System.out.println("父类静态的test3()方法======");
	}
	
	private void test4() {
		System.out.println("父类私有的test4()方法======");
	}
	
	public final void test5() {
		System.out.println("父类fianl方法的test5()方法======");
	}
}

 

   子类:

public class Test13 extends Test12 {

	public void test1() {
		System.out.println("子类的test1()方法======");
	}

	public void test2() {
		System.out.println("子类的test2()方法======");
	}

	public static void test3() {
		System.out.println("子类静态的test3()方法======");
	}
	
	private void test4() {
		System.out.println("子类私有的test4()方法======");
	}
	
	private void test6() {
		System.out.println("子类私有的test6()方法======");
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Test12 t12 = new Test13();
		// 根据对象t12对象引用的实际对象类型来调用对应的方法。
		t12.test1(); 
		t12.test2(); 
		// 当子类类中重写基类中static、final、或private方法时,实质上是创建了一个新的方法。
		t12.test3(); 
		//t12.test6(); 虽然子类定义了test6()方法,但是父类并没有定义,一个类型引用只能引用引用类型自身含有的方法和变量。 
		//t12.test4(); 编译会报错的,test4()方法在类Test12中定义私有的,这里是无法调用到的
	
		Test13 t13 = new Test13();
		t13.test1();
		t13.test2();
		t13.test3();
		t13.test4();
		t13.test5();
		
		// Test13 t14 = (Test13) new Test12();  不能把父类对象引用赋给子类对象引用变量
		// java.lang.ClassCastException: Test12 cannot be cast to Test13
		
	}

}

 

执行结构:

父类的构造()方法======
子类的test1()方法======
子类的test1()方法======
子类的test2()方法======
父类静态的test3()方法======
父类的构造()方法======
子类的test1()方法======
子类的test1()方法======
子类的test2()方法======
子类静态的test3()方法======
子类私有的test4()方法======
父类fianl方法的test5()方法======

 

 

 

 

分享到:
评论

相关推荐

    java面试题,java框架面试题

    在本文中,我们将对 Java 面试题进行总结和分析,帮助读者快速掌握 Java 面试题的知识点。 一、 Java 基础知识 1. 面向对象的三个基本特征:封装、继承、多态 封装是把客观事物封装成抽象的类,并且类可以把自己的...

    Java面试宝典2013最新版

    Java面试宝典2013最新版汇集了Java编程语言面试中的常见知识点,这些知识点对于程序员在面试中表现优秀,获得心仪的工作机会至关重要。以下是对该宝典中涉及的知识点的详细解读: 1. Java基础知识点,包括了类与...

    2024年Java基础面试题,附带详细解析答案

    什么是 Java 中的重载(overloading)和重写(overriding)?它们有什么区别? **答案解析:** - **重载(Overloading)**:在同一类中,允许存在多个同名方法,但它们的参数列表必须有所不同。这有助于实现更...

    Java面试宝典.pdf

    Java面试宝典包含了Java基础、面向对象、异常处理、多线程以及集合框架等多个方面的问题和解答,是求职者准备Java面试时的重要参考。以下是根据文档内容归纳的知识点: 1. Java基础部分: - Java源文件中可以包括多...

    JAVA面试精华汇总

    这些知识点涵盖了Java开发的基本技能和高级特性,深入理解和熟练应用这些知识点对于在Java面试中脱颖而出至关重要。准备面试时,不仅要掌握理论知识,还要通过编写代码和实际项目经验来提高解决问题的能力。

    java面试题20道(适合工作1~3年)(附答案).docx

    1. **Java中实现多态的机制**:Java通过方法的重写(Overriding)和重载(Overloading)实现多态性。重写是子类对父类方法的重新定义,使得子类对象可以拥有与父类不同的行为;重载则是同一个类中多个同名但参数列表...

    面试java、面试java 面试java

    多态有两种主要形式:方法重载(Overloading)和方法重写(Overriding)。 2. **JavaBean规范**: - JavaBean是符合特定规范的Java类,主要用于数据存储和交换。规范包括:放在一个包中,属性为私有,提供无参构造...

    java面试题收集集锦

    Java面试题集锦涵盖了广泛的Java基础知识,JSP与Servlet技术,J2EE相关知识以及其他一些IT领域的要点。以下是对这些知识点的详细说明: 1. **Java基础** - Java有八种基本数据类型:byte, short, int, long, float...

    学会这些java面试题让你吊打面试官

    【Java面试核心知识点详解】 1. **Java内存管理与生命周期** Java内存主要分为栈内存、堆内存和方法区。栈内存主要存储方法中的局部变量、常量和对象引用,随方法调用结束而销毁。堆内存用于存放所有类的实例对象...

    java面试必备资料大全

    ### Java面试必备知识点详解 #### 一、Java虚拟机与平台无关性 **知识点1:Java虚拟机(JVM)** - **定义**:Java虚拟机(JVM)是一种能够执行Java字节码的虚拟机进程。Java源代码经过编译后会变成JVM能够识别并...

    JAVA面试大全.doc

    Java中的多态性包括方法重载(overloading)和方法覆盖(overriding)。 2. **基础类型与封装类**: - **基本类型**:如int、char、float等,它们在内存中直接存储值,效率高但无法执行对象特有的方法。 - **封装...

    java面试常见120题

    ### Java面试常见120题知识点详解 #### 1. Java虚拟机的理解 - **概念**:Java虚拟机(JVM)...以上是对给定文档中的部分知识点的详细解释,这些知识点涵盖了Java基础的核心概念,对于理解和准备Java面试非常有帮助。

    葵花宝典JAVA面试必备

    Java中的多态性体现在方法重载(overloading)和方法覆盖(overriding)。 2. **基本数据类型与引用类型的区别** - 基本数据类型如`int`是直接存储在栈中的,而引用类型如`Integer`存储的是对象在堆中的引用。 - ...

    java面试题汇总

    ### Java面试题汇总知识点 #### 1. Java序列化 - **定义**:Java序列化是一种将对象状态转换成字节流的过程,以便于存储或网络传输。它使得对象能够跨进程、跨机器进行传递。 - **实现方式**:一个类如果想要实现...

Global site tag (gtag.js) - Google Analytics