gpt4 book ai didi

java - 如何在 java 中使用 self(php) like 关键字?

转载 作者:行者123 更新时间:2023-11-30 08:55:31 26 4
gpt4 key购买 nike

我想知道 java 在 php 中没有像 self 这样的关键字来获得与此 php 代码产生相同的结果。

    <?php
class Person {
private $name;

public function __construct($name) {
$this->name = $name;
}

public function getName() {
return $this->name;
}

public function getTitle() {
return $this->getName()." the programmer";
}

public function sayHello() {
echo "Hello, I'm ".$this->getTitle()."<br/>";
}

public function sayGoodbye() {
echo "Goodbye from ".self::getTitle()."<br/>";
}
}

class Geek extends Person {
public function __construct($name) {
parent::__construct($name); //calling person class's constructor
}

public function getTitle() {
return $this->getName()." the geek";
}
}

$geekObj = new Geek("Avnish alok");
$geekObj->sayHello();
$geekObj->sayGoodbye();

/*This will output:

Hello, I'm Avnish alok the geek
Goodbye from Avnish alok the programmer
*/


?>

在 java 中,我写了相同的代码,但结果却不同。在这里查看我的 java 代码

    class Person {
private String name;

public Person(String name) {
this.name = name;
}

public String getName() {
return this.name;
}

public String getTitle() {
return this.getName()+" the programmer";
}

public void sayHello() {
System.out.println("Hello, I'm "+this.getTitle());
}

public void sayGoodbye() {
System.out.println("Goodbye from "+getTitle());
/*
Here i'm unable to call Person class getTitle(). while in php i can easily achieve this by using self::getTitle().
*/
}
}

class Geek extends Person {
Geek(String name) {
super(name);
}

public String getTitle() {
return this.getName()+" the geek";
}
}

class This_Ex
{

public static void main(String[] arg)
{
Geek obj=new Geek("Avnish alok");
obj.sayHello();
obj.sayGoodbye();
}

}


/*This will output:

Hello, I'm Avnish alok the geek
Goodbye from Avnish alok the geek
*/

看看我的 Person 类 sayGoodbye() 方法

System.out.println("Goodbye from "+getTitle());  

这里我只想使用 Person 类的 getTitle() 方法。任何帮助是极大的赞赏。

最佳答案

不,据我所知你不能那样做。如果你想调用一个在 Person 中专门定义的方法,你应该将它声明为 private 并在 Person 中调用它。这样它就不能被覆盖。如果您希望它可以从 Person 外部调用,但不可覆盖,您可以将其声明为 final。无论哪种方式,您都需要一个单独的方法。

干杯,马库斯

关于java - 如何在 java 中使用 self(php) like 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28959906/

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