刚写个程序,请高手指点,怎么继承父类中private对象,吧private改成public就好使,可要求是private,所以请指点一下
public abstract class A
{
private Fly fly;
public Duck(){
}
public abstract void display();
public void performQuack()
{
fly.s();
}
}
public class B extends A
{
public B()
{
fly=new Wings();
}
public void display()
{
fly.s();
}
}
public interface Fly
{
public abstract void s();
}
public class Wings implements Fly
{
public void s()
{
System.out.println("I can fly!");
}
}
public abstract class A
{
private Fly fly;
public Duck(){
}
public abstract void display();
public void performQuack()
{
fly.s();
}
}
public class B extends A
{
public B()
{
fly=new Wings();
}
public void display()
{
fly.s();
}
}
public interface Fly
{
public abstract void s();
}
public class Wings implements Fly
{
public void s()
{
System.out.println("I can fly!");
}
}
private Fly fly;
public A(Fly fly) {
this.fly = fly;
}
}
class B extends class A {
public B( ) {
super(new Wings());
}
public void display()
{
performQuack();
}
}
第二,如果你一定要访问父类的private成员,那么,在父类中增加一个public方法,它返回该private变量.则在子类中就可以通过调用它来间接访问该变量.
public abstract class A
{
private Fly fly;
public Fly getFly()
{return fly;}
public Duck(){
}
public abstract void display();
public void performQuack()
{
fly.s();
}
}
可问题是楼主的程序写得太差了,头痛医头,脚痛医脚是不行的。这个程序的问题太多了。
学习基本功,不光是学语法。让你的代码通过编译不是目的,目的是要从每一个简单的程序中锻炼自己缜密合理的设计能力和规范的编程风格。
同时也帮楼主顶一下