java 函数相同的数据_java子类用父类成员函数_Java的父类和子类中是否可以具有相同的数据成员?...

java子类用父类成员函数

The question is that "Can we have same data members in parent/base and child/derived classes in Java"?

问题是“在Java的父类/基类和子类/派生类中可以有相同的数据成员”吗?

Yes, it is possible to have same data member in Parent and Child classes.

是的,在Parent和Child类中可以有相同的数据成员 。

Now, we will see the capability or strength of the Parent and Child class. The Parent class reference can hold its own object and Child class object as well and The Child class reference hold its own object only.

现在,我们将看到父子类的能力或实力。 父类引用可以保留自己的对象,子类对象也可以保留,而子类引用只能保留自己的对象。

The Parent class object can access their data only that's means this class doesn't have permission to access Child class data.

父类对象只能访问其数据,这意味着该类无权访问子类数据。

With the help of example we will see what will happen if we contain same data member in both the class [Parent and Child].

借助示例,我们将看到如果在[Parent和Child]类中包含相同的数据成员,将会发生什么情况。

Example:

例:

class Base {

// Declare and Instantiate data member

String str = "We are in Parent class";

}

class Derived extends Base {

// Declare and Instantiate data member

String str = "We are in Child class";

}

class Main {

public static void main(String[] args) {

// Creating a Base class object

Base base = new Base();

// Invoked Base class data member with Base class object.

System.out.println("Base class reference can access only base class member :" + " " + base.str);

// Creating a Derived class object

Derived derived = new Derived();

// Invoked Derived class data member with Derived class object.

System.out.println("Derived class reference can access both Base and Derived class member : " + " " + derived.str);

// Here Base class reference holding an object of

// Derived class and it is perfectly valid

base = new Derived();

// Base class reference can access only Base class

// data member whether it is holding an object is of

// Base class or Derived class.

System.out.println("Base class reference holding an object of Derived class but it can access only Base class data member :" + " " + base.str);

// we don't need to include the below code ….

/*

// Here Derived class reference holding an object of

// Base class and it is perfectly invalid

derived = new Base();

// If Derived class reference hold an object of Base

// class then we will get compile time error

System.out.println("We will get compile time error");

*/

}

}

[/code]

Output

输出量

E:\Programs>javac Main.java

E:\Programs>java Main

Base class reference can access only base class member : We are in Parent class

Derived class reference can access both Base and Derived class member: We are in Child class

Base class reference holding an object of Derived class but it can access only Base class data member: We are in Parent class

[/code]

In the above program we have four cases:

在以上程序中,我们有四种情况:

If Base class reference holds an object of Base class then it is perfectly valid and we can access only Base class data member.

如果基类引用包含基类的对象,则它是完全有效的,并且我们只能访问基类数据成员。

Base base = new Base();

[/code]

If Derived class reference holds an object of Derived class then it is perfectly valid and we can access both Base and Derived class data member.

如果“派生类”引用持有“派生类”的对象,则它是完全有效的,我们可以访问基类和派生类数据成员。

Derived derived = new Derived();

[/code]

If Base class reference holds an object of Derived class then it is also perfectly valid but it can access only Base class data member.

如果基类引用包含派生类的对象,则它也是完全有效的,但它只能访问基类数据成员。

Base base = new Derived();

[/code]

If Derived class reference holds an object of Base class then it is perfectly invalid and in that case we will get compile time error.

如果派生类引用持有基类的对象,则它完全无效,在这种情况下,我们将获得编译时错误。

Derived derived = new Derived();

[/code]

java子类用父类成员函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值