gpt4 book ai didi

java - 从父类(super class)调用子类方法,该方法在另一个子类中不可用

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:11 24 4
gpt4 key购买 nike

我有一个父类(super class) Person 和两个子类 AuthorMember 如下

public class Author extends Person {    
public Author(String fName, String lName, int noOfPublications){
----// set
}
public String getnoOfPub(){
return noOfPublications;
}
}

public class Member extends Person {

public Member(String fName, String lName, int memberNo){
----// set
}
public String getMembNo(){
return memberNo;
}
}

我想从主类访问非通用方法或如何从父类(super class) person 访问 getnoOfPub 和 getMembNo 方法?

最佳答案

您可以通过检查对象的类型并将其转换为相关子类的类型来访问非常规方法,但这不是您希望在基类的代码中执行的操作。

在 Person 的方法中,你可以这样写:

public void someMethod ()
{
String id = null;
if (this instanceof Member) {
Member member = (Member) this;
id = member.getMembNo ();
}
}

虽然这是有效的语法,但这是一个非常糟糕的做法,因为基类不应该知道它的子类,因为子类可以在基类编写很久之后编写,所以基类的编写者不能假设他们知道将扩展其基类的所有子类。

关于java - 从父类(super class)调用子类方法,该方法在另一个子类中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27499140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com