资讯详情

ch08:继承和多态

目录

  • 第8章 习题
      • 1.举例说明可见性为protected方法和可见性为public方法的区别。举例说明this和super应用场合。
      • 2. 每个类都有toString方法?它是从哪里来的?
      • 3. equals、hashCode、finalize、clone和getClass哪个类别的方法定义?
      • 4.父类继承了哪些成员?在什么情况下,子类隐藏了父类成员的变量和方法?
      • 5.定义一个Person类及其两个子类Student 和Employee。Employee有子类Faculty 和Staff。Person属性包括:姓名、地址、电话号码和电子邮件地址。Student属性包括:班级、状态(一年级、二年级、三年级、四年级),定义为常数。Employee类别包括:姓名、工资、就业日期。Faculty属性包括:办公时间和等级。Staff属性有职位。要求每个类对tostring重写后的方法包括显示类名和人名。

第8章 习题

1.举例说明可见性为protected方法和可见性为public方法的区别。举例说明this和super应用场合。

package ch8; import classFather.*; public class u8p1 { 
         //第八章第一题     /** * @param args */     public static void main(String[] args) { 
                 classFather.Pubx();   //u8p1class的public可以直接访问不同包中的方法         //classFather.Prox(); u8p1class的protected不同包中不可访问的方法         classSon a =  new classSon();   ///将子类实例化,调用子类方法         a.pre();      } } ///第八章第一题子类的定义 class classSon extends classFather { 
             String x="u8p1classSon";     public void  pre (){ 
                 classFather.Pubx();  //的public可以直接访问不同包中的方法         classFather.Prox();  //的protected该方法可以直接访问子类         System.out.println(super.x); //调用父类x         System.out.println(this.x);  //调用本类的x
    }
}

创建另外一个包

package classFather;

//第八章第一题 父类的定义
public class classFather { 
        

    /** * @param args */
    protected String x="u8p1class";
    protected static void Prox(){ 
        };
    public static void Pubx(){ 
        };
}

2. 每一个类都有toString方法?它是从哪里来的?

  • 答:Object类是所有类的父类,toString()方法被所有子类继承

3. equals、hashCode、finalize、clone和getClass方法定义在哪个类里?

  • 答:Object类中

4.子类继承了父类的哪些成员?子类在什么情况下隐藏父类的成员变量和方法?

  • 答: (1)子类继承了父类中除构造方法以外的所有成员; (2)当子类的成员变量和成员方法与父类同名时,父类的成员在子类中被隐藏;

5.定义一个Person类和它的两个子类Student 和Employee。Employee有子类Faculty 和Staff。Person的属性包括:姓名、地址、电话号码和电子邮件地址。Student的属性包括:班级、状态(1年级、2年级、3年级和4年级),将这些状态定义为常量。Employee类包括的属性:姓名、工资、受雇日期。Faculty的属性包括:办公时间和级别。Staff的属性有职务。要求每个类对tostring方法重写,重写后的方法具有显示类名和人名。


public class unit_08 { 
        
    public static void main(String[] args) { 
        
        // TODO Auto-generated method stub
        //u8p1();
        Person a = new Person("li","GZ","13352524455","19@qq.com");
        Student b = new Student("li","GZ","13352524455","19@qq.com",1,2);
        Employee c = new Employee("li","GZ","13352524455","19@qq.com",
                2000.0,2019,9,16);
        Faculty d = new Faculty("li","GZ","13352524455","19@qq.com",2000.0,
                2019,9,16,2020,12,13,1);
        Staff e = new Staff("li","GZ","13352524455","19@qq.com",2000.0,
                2019,9,16,"teacher");
        System.out.println(a.toString());
        System.out.println(b.toString());
        System.out.println(c.toString());
        System.out.println(d.toString());
        System.out.println(e.toString());
    }
}
class Person { 
        
    protected String name;  //姓名
    protected String address; //地址
    protected String tel; //手机号码
    protected String email; //邮件
    //构造方法
    Person(String Name, String Address,String Tel,String Email){ 
        
        name  = Name;
        address = Address;
        tel = Tel;
        email = Email;
    }
    Person(String Address,String Tel,String Email){ 
        
        address = Address;
        tel = Tel;
        email = Email;
    }
    public String toString(){ 
        
        return "Person@名字是:"+name;
    }
}

class Student extends Person{ 
        
    int classStu;  //班级
    int gradeStu;  //年级
    static final String claasId1 = "1年级";
    static final String claasId2 = "2年级";
    static final String claasId3 = "3年级";
    static final String claasId4 = "4年级";
    //构造方法
    //除了构造方法子类继承了父类的 成员变量,方法
    Student(String Name, String Address,String Tel,String Email,
            int Class,int Grade){ 
        
        super(Name,Address,Tel,Email);//显示调用父类构造方法
        classStu = Class;
        gradeStu = Grade;
    }
    public String toString(){ 
        
        return "Student@名字是:"+name;
    }
}

class Employee extends Person { 
        
    String name;  //姓名
    double salary;  //工资
    date hiredate;  //受雇日期
    //构造方法
    Employee(String Name, String Address,String Tel,String Email,
             double Salary ,int Year, int Mon , int Day){ 
        
        super(Address,Tel,Email);  //显示调用父类构造方法
        name = Name;
        salary = Salary;
        hiredate = new date(Year,Mon,Day);
    }
    public String toString(){ 
        
        return "Employee@名字是:"+name;
    }
}

class Faculty extends Employee{ 
        
    date officetDate;  //办公时间
    int lv;  //等级
    Faculty(String Name, String Address,String Tel,String Email,
            double Salary ,int Year, int Mon , int Day,
            int OYear , int OMon,int ODay,int Lv){ 
        
        super(Name,Address,Tel,Email,Salary,Year,Mon,Day);
        officetDate = new date(OYear,OMon,ODay);
        lv = Lv;
    }
    public String toString(){ 
        
        return "Faculty@名字是:"+name;
    }
}

class Staff extends Employee{ 
        
    String post;  //职务
    Staff(String Name, String Address,String Tel,String Email,
          double Salary ,int Year, int Mon , int Day,
          String Post){ 
        
        super(Name,Address,Tel,Email,Salary,Year,Mon,Day);
        post = Post;
    }
    public String toString(){ 
        
        return "Staff@名字是:"+name;
    }
}

class date{ 
        
    int year; //年
    int mon;  //月
    int day;  //日
    date(int Year,int Mon,int Day){ 
        
        year = Year;
        mon = Mon;
        day = Day;
    }
}

标签: omon安全继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司