「java隐藏和覆盖」java中隐藏的概念

博主:adminadmin 2022-11-28 08:47:06 39

本篇文章给大家谈谈java隐藏和覆盖,以及java中隐藏的概念对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA方法的覆盖与域的隐藏有何不同?

方法的覆盖出现在父类与子类之间,若子类中定义的某个方法特征与父类中定义的某个方法特征完全一样,那么就说子类中的这个方法覆盖了父类中的相应的那个方法。

父类中定义了:public

void

todo(String

str);

子类也定义了:public

void

todo(String

str);

则子类的todo方法覆盖了父类的todo方法!!

域的隐藏,你是指private么,私有的变量、方法只能在自己家里调用,儿子老爹都不能用,其他人更不能用。

class

A

{

private

int

num;

//num只能在A里面用,例如:num

=

num

+

1;

}

class

B

{

//num不能在这里用:a.num

=

a.num

+

1;

}

如何理解Java中的隐藏与覆盖

隐藏与覆盖类方法

在讲清这个问题之前,先明白什么是隐藏?什么是覆盖?

所谓隐藏,是指运行时系统调用当前对象引用的编译时类型中定义的方法;对于覆盖,则指运行时系统调用当前对象引用运行时类型中定义的方法。

所以在执行Student1

s

=

new

Graduate1();和Graduate1

g

=

new

Graduate1();时,(1)先进行Student1类的构造,这里包括两个方法study()和exercise(),由于study()方法被覆盖,所以先执行Graduate1里study(),再执行Student1里的exercise();(2)再进行Graduate1类的构造,同样包括两个方法study()和exercise(),所以执行顺序为先Graduate1里的study()方法,再Graduate1里的exercise()方法。

2.

隐藏与覆盖成员变量

如果子类中的变量和父类中的变量具有相同的名字,那么子类中的变量就会隐藏父类中的变量,不管他们的类型是什么,也不管他们是类变量还是实例变量。

所以在执行诸如System.out.print(s.math);之类的s实例的程序时,显示为Student1类的成员变量,而执行诸如System.out.print(g.math);之类的g实例的程序时,显示为Graduate1类的成员变量。

有关java中覆盖和隐藏的问题

隐藏一般是对静态的属性和方法来说的。

你看一下下面的这段代码:

class

planet

{

public

static

void

hide()

{

system.out.println("the

hide

method

in

planet.");

}

public

void

override()

{

system.out.println("the

overrid

method

in

planet.");

}

};

public

class

earth

extends

planet

{

public

static

void

hide()

{

system.out.println("the

hide

method

in

earth.");

}

public

void

override()

{

system.out.println("the

override

method

in

earth.");

}

public

static

void

main(string[]

args)

{

earth

myearth

=

new

earth();

planet

myplanet

=

(planet)

myearth;

myplanet.hide();

myplanet.override();

}

}

覆盖就是子类的方法跟父类的方法具有完全一样的签名和参数。我们看到上面那两个类,父类的override在子类中重写了,因为有跟父类有相同的签名和参数,所以叫做覆盖,但是hide方法,因为是静态的,所以在这里叫做隐藏。

关于java隐藏和覆盖和java中隐藏的概念的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。