栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ch08:继承和多态

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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的属性包括:班级、状态(1年级、2年级、3年级和4年级),将这些状态定义为常量。Employee类包括的属性:姓名、工资、受雇日期。Faculty的属性包括:办公时间和级别。Staff的属性有职务。要求每个类对tostring方法重写,重写后的方法具有显示类名和人名。

第8章 习题 1.举例说明可见性为protected方法和可见性为public方法的区别。举例说明this和super的应用场合。
package ch8;
import classFather.*;
public class u8p1 {
//第八章第一题
    
    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 {

    
    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;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/301785.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号