私はそれを完全に理解しようと試みるために継承で遊んでいます:
プライベートメソッドを使用して親クラスを作成し、それを子クラスでオーバーライドしてパブリックにしました。また、クラスごとに異なる方法でtoStringメソッドをオーバーライドしました。このように見えます:
public class testparent {
public String toString(){
return ("One and two boobaloo");
}
private void hitMe(){
System.out.println("BAM");
}
}
public class testbaby extends testparent{
public String toString() {
return "Bananas";
}
public void hitMe(){
System.out.println("BAMBAM");
}
public static void main(String[] args){
testbaby testy = new testbaby();
testparent test2 = testy;
System.out.println(test2);
//test2.hitMe(); //????? not allowed
System.out.println(testy);
testy.hitMe();
}
}
さて、なぜ両方のオブジェクトを印刷すると「バナナ」が生成されるのに、両方のクラスのhitMe()メソッドを使用できないのですか?