老师给了个题目!
1.创建类Person,类Teacher继承Person,类Professor继承Teacher,在类中设计方法method,该方法的参数个数不同,参数类型不同。理解并验证缺省构造器的作用,添加带参数构造器,程序中如何处理缺省构造的实例化。验证类中方法的覆盖和重载。构造器的作用是初使化对象,缺省构造的作用是在没有给出具体构造方法时,由编译器自动生成的!但是缺省构造器的作用要如何验证呢?“程序中如何处理缺省构造的实例化”!这句话想来想去搞不明白啥意思!顺便问下最后一问,覆盖和重载要如何验证来着?想来想去想不出个方法来!晕了!
请各位大哥大姐给个解释,在此先谢啦!

解决方案 »

  1.   

    你在所有类中都写个方法doSomething()就可以验证了覆盖
    然后你在同一个方法中用不同的参数,就可以验证重载了
      

  2.   

    class Person{
      Person(String name){}
    }class Teacher extends Person{
      Teacher(){}
    }
    这个会通不过编译问题都比较基础吧
    需要自己试才知道的,别太懒了
      

  3.   

    比如Teacher类,有一个带参数的构造函数,那么系统就不会为你写缺省构造函数。这个时候如果用Teacher t = new Teacher();编译不会通过。
    因此验证缺省构造函数的作用,就是你写Teacher类的时候,什么构造函数都不写,这个时候系统就会为你写一个不带参数的构造函数。用Teacher t = new Teacher();就算是验证了至于覆盖,在Teacher类中写一个Teach方法,在Professer类中再写一个Teach方法,两个方法功能不同,这就算覆盖了。关于重载,你在写Professer类的时候,写一个Teach(String student, int lessonNumber);方法,再写一个Teach(String student)方法,这两个方法有相同的方法名,但是参数不同,这就是重载
      

  4.   

    //Person.java
    public class Person 
    {
    public Person()
    {
    System.out.println("缺省构造方法Person()");
    }

    void method()
    {
    System.out.println("method()方法(Person类)");
    }
    }class Teacher extends Person
    {
    public Teacher()
    {
    System.out.println("缺省构造方法Teacher()");
    }

    void method()
    {
    System.out.println("method()方法覆盖!");
    }

    void method(int i)
    {
    System.out.println("method(int i)方法重载,参数i= "+i);
    }
    }class Professor extends Teacher
    {
    public Professor()
    {
    System.out.println("缺省构造方法Professor()");
    }
    }//几位大哥看下我这个有没有问题来着?
      

  5.   

    zhuxr2003(zxr) ( ) 信誉:100    Blog 
    继承,不是java,c++才有的.
    ----------------------------------------------
    晕!JAVA有的!
      

  6.   

    class  Person
    {
    Person(){
    System.out.println("create Person");
    }
    void method(){
    System.out.println("Person.method");
    }
    }class Teacher extends Person
    {
    Teacher(){ //调用它创建对象前会先调用 Person();
    System.out.println("create Teacher");
    }
    Teacher(String name){//调用它创建对象前会先调用 Person();
    System.out.println("create teacher :"+name);
    }
    void method(){ //覆盖;
    System.out.println("Teacher.method()");
    }
    void method(int i){ //重载;
    System.out.println("Teacher.method(int i)");
    }}public class Professor extends Teacher
    {
    Professor(){
    System.out.println("inside Professor");
    }
    Professor(String name){ //指定调用父类的Teacher(String name)构造器;
    super(name);
    System.out.println("Teacher: "+ name +" is a "+"professor");
    }
    public static void main(String[] args){
    Person o1 = new Person();
    o1.method();
    Teacher o2 = new Teacher();
    o2.method();
    o2.method(2);
    o2 = new Teacher("ouyang");
    o1 = o2;
    o1.method();//多态机制 结果为:Teacher.method(); 这就是覆盖的神奇
    Professor o3 = new Professor();
    Professor o4 = new Professor("guangyao");
    }
    }