您的位置:

java中属性的覆盖(java中什么是方法的覆盖)

本文目录一览:

java继承中关于属性的覆盖问题,继承中是否存在属性的覆盖?

属性是不会覆盖的哦。。。

父类的属性是父类的。。。子类的属性是子类的。。。

方法是可以被覆盖的。。。

希望能帮到你。。。。

Java中属性的隐藏与方法的覆盖的区别

我明白你想问的意思。我先这样回答下,看你的基础够不够看懂,如果不懂就再问,email我也行。

在C++中,数据成员(属性)可以隐藏,函数成员(方法)既可以隐藏也可以覆盖(通过关键字virtual)。

在Java中,动态编联始终是打开的(相当于始终有一个virtual在方法前面)。所以Java中的方法没办法隐藏,只能覆盖。

可以对比一下C#,它通过一套关键字virtual、new、override,实现了既能隐藏方法,又能覆盖方法。

Java 父类A有属性B b,子类A1有属性B1 b,B1是B的子类。那么A1的b属性覆盖了父类的属性吗?

不会覆盖的

A1中的b变量是局部变量,好比这是两个家庭,恰好有一个孩子名字相同,但本质上是两个不同的变量。

所以对A1中的b操作不会对父类A中的b属性有任何影响

请教个问题,Java中属性的隐藏与方法的覆盖,求详解.

首先要知道这几点

1.只有注入到内存的属性和方法,才能被使用.(这是本类的,如果是其他类,还得考虑安全级别,如:public protected private等)

2.静态方法和静态属性 不依赖于 对象的创建(new) 即:在对象创建之前,只要应用程序启动,就注入内存.

你可以直接调用,如:可以直接使用Animal.A Animal.method(),而且:

a.A == Animal.A

a.method() == Animal.method()

3.非静态程序块, 即 成员变量,成员方法, 要依赖于 对象的创建,只有 创建了这个的对象,才给这个对象分配内存,注入内存,你才能使用它

4.Animal a = new Cat(); 即: 父类 对象 = new 子类

左边的是句柄, 指向的是子类的对象,由于你创建的是子类的对象,而且子类也覆盖了父类的方法和属性(非静态),所以

a.voice(); 所以执行的是子类的方法.