问答详情
源自:10-1 Java 中的多态

你们作业有用到讲的那个知识点嘛,我的几乎没有。。。

package homework;


public class Father {

String transport;//运输工具

String method;//运输方式

String peopleNum;//运输人数

public void setFather(String transport,String method,String peopleNum) {

this.transport = transport;

this.method = method;

this.peopleNum = peopleNum;

System.out.println(transport+"通过"+method+"运输"+peopleNum);

}

}


public class Eg extends Father {

 

public static void main(String[] args) {

Father fa = new Father();

fa.setFather("汽车", "陆地", "30人");

fa.setFather("轮船", "海上", "150人");

fa.setFather("飞机", "天空", "200人");

}



}


提问者:咕叽咕叽肉肉 2018-08-28 20:35

个回答

  • 肥宅风见啸
    2018-09-28 15:34:30

    emmmm父类的super是调用的object类,原则上如果没有任何继承声明,默认继承了object

  • 咕叽咕叽肉肉
    2018-08-30 10:03:16

    你在父类中定义的private属性 ,在子类中又定义private属性 但是子类在继承了父类的方法之后又重写,然后通过super给父类传递参数,然后又通过子类的重写方法yunshu(){  }输出。复杂度太高了吧  很多都可以简化的  而且你都定义了private属性  完全可以通过子类去调用父类set  get 方法啊,这样起码能看起来更简明些  不过 你要是想用的所以学过的知识我觉得没什么必要  ,练习题嘛 练练手就好啦

  • qq_泡沫_37
    2018-08-30 09:29:15

    我写的那个父类的构造器其实没有必要的,主要是一开始考虑可能要用父类实例化一个对象需要传递参数才写的,子类的那个super是为了实现父类构造器的,就是为了给父类构造器传递参数,,如果父类不写构造器,子类只要写一个super()就行了。所以你可以把那个父类的构造器注释掉,然后把子类构造器的super()直接这么写就行

  • 咕叽咕叽肉肉
    2018-08-29 16:20:41

    确实  我那个子类都不能算是子类哈哈哈  跟继承没什么关系   我当时也是创建三个类  在一个父类  一个main方法  但是写的差不多的时候感觉好麻烦 。最后直接就输出了

  • qq_泡沫_37
    2018-08-29 15:40:06

    //父类 类名就是交通工具
    public class jtgj {
        private String gj;
      private String yunshufangshi;
        private int zaikelaing;
        public jtgj(String gj,String yunshufangshi,int zaikelaing) {
            super();
            // TODO Auto-generated constructor stub
            this.gj=gj;
            this.yunshufangshi=yunshufangshi;
            this.zaikelaing=zaikelaing;
        }
        public void yunshu() {
            System.out.println("我通过"+yunshufangshi+"运输"+zaikelaing+"人");
        }
        public static void main(String[] args) {
            //通过引用多态,用父类的引用指向子类
            jtgj qc=new cat("汽车", "陆地", 20);
            qc.yunshu();
        }
    }
    
    这个是继承jtgj这个父类的子类
    public class cat extends jtgj {
        private String gj;
        private String yunshufangshi;
        private int zaikelaing;
    
        public cat(String gj, String yunshufangshi, int zaikelaing) {
            super(gj, yunshufangshi, zaikelaing);
            // TODO Auto-generated constructor stub
            this.gj=gj;
            this.yunshufangshi=yunshufangshi;
            this.zaikelaing=zaikelaing;
        }
        
        //重写子类的方法
        @Override
        public void yunshu() {
            // TODO Auto-generated method stub
            //super.yunshu();      
            System.out.println(gj+"通过"+yunshufangshi+"方式运输"+zaikelaing+"人");
        }
    }

    不要直接拷贝,代码我是在eclipse里写的,在那里运行没问题,但是这里有问题。

  • qq_泡沫_37
    2018-08-29 14:51:16

    通常子类是父类的具体实现,你的子类不像是子类,更像是测试类,你应该在创建3个类:汽车,轮船,和飞机分别继承父类,而且父类其实没必要设运输工具这个属性,直接这个当类名就行,