一道Java面试题,静态方法在Java中是一种非虚方法
yqxbc 发布时间:05-07 来源:一起学编程 浏览:14次

  一道Java面试题,个人认为,静态类型的方法是因为它的外观类型决定的(也就是Parent)。

  静态的方法是非虚方法(Java中的非虚方法有private,final,static,构造器,非虚方法无需根据具体的对象遍历方法区的方法表,决定调用关系)

  也就是说,对于静态类型方法的调用,是其声明类型的,如Parent c = new Child(); Parent便是其外观类型(声明类型),故调用的便是Parent类型的静态方法。

 

package com.jue.test;

class Parent{
 public static void display(){
  System.out.println("Parent->display");
 }
}

class Child extends Parent{
 public static void display(){
  System.out.println("Child->display");
 }
}
public class MainTest {

 public static void main(String[] args) {
  Parent c = new Child();
  c.display();
 }
}

 

  result:Parent->display

  为了验证这个,我可以把Parent的 public static void display()方法去掉,则会编译错误。

如果你有好的win10资讯或者win10教程,以及win10相关的问题想要获得win10系统下载的关注与报道。
欢迎加入发送邮件到657025171#qq.com(#替换为@)。期待你的好消息!