java基础-继承练习
1、
学生信息和行为(名称,年龄,所在班级,查看课表,填写听课反馈fillForm)
老师信息和行为(名称,年龄,部门名称,查看课表,发布问题publishForm)
定义角色类作为父类包含属性(名称,年龄),行为(查看课表)
定义子类:学生类包含属性(所在班级),行为(填写听课反馈)
定义子类:老师类包含属性(部门名称),行为(发布问题)
package com.jdL.day13homework.question2;public class Role {private String name;private int age;//空参public Role(){}//有参public Role(String name,int age){this.name=name;this.age=age;}//行为public String getName() {return name;}public void setName(String name) {this.name = name;}public int getClassNumber() {return age;}public void setClassNumber(int age) {this.age = age;}//行为public void lookClass(){System.out.println("查看课表");}
}
package com.jdL.day13homework.question2;import com.jdL.day13classwork.Employee;public class Student extends Employee {private String classroom;//空参public Student() {}//有参public Student(String number, String name, String classroom) {super(name,number);this.classroom=classroom;}public String getClassroom() {return classroom;}public void setClassroom(String classroom) {this.classroom = classroom;}//行为public void fillForm(){System.out.println("填写听课反馈");}
}
package com.jdL.day13homework.question2;public class Teacher extends Role{private String departmentName;public Teacher() {}public Teacher(String name,int age,String departmentName) {super(name,age);this.departmentName = departmentName;}public String getDepartmentName() {return departmentName;}public void setDepartmentName(String departmentName) {this.departmentName = departmentName;}//行为public void publishForm(){System.out.println("发布问题");}
}
2、
完成代码(按照标准格式写),然后在测试类中测试。
1.手机类Phone
属性:品牌brand,价格price
无参构造,有参构造
行为:打电话call,发短信sendMessage,玩游戏playGame
2.测试类
创建Phone类对象,调用Phone类中的方法
思考:
假设所有的手机都有属性屏幕的尺寸(int size),而且假设所有手机的屏幕尺寸为6,应该如何实现?
package com.jdL.day13homework.question3;public class Phone {private String brand;private double price;private static int size=6;//空参public Phone() {}//有参public Phone(String brand, double price) {this.brand = brand;this.price = price;}//get和set方法public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public int getSize() {return size;}public void setSize(int size) {this.size = size;}//行为public void call(){System.out.println("打电话");}public void sendMessage(){System.out.println("发短信");}public void playGame(){System.out.println("打游戏");}
}
package com.jdL.day13homework.question3;public class PhoneTest {public static void main(String[] args) {Phone phone = new Phone("小米",1666);System.out.println(phone.getBrand()+","+phone.getPrice()+","+phone.getSize());phone.call();phone.sendMessage();phone.playGame();}
}
3、
分析以下需求,并用代码实现
1.定义Person类
属性:
姓名name、性别gender、年龄age、国籍nationality;
方法:
吃饭eat、睡觉sleep,工作work。
2.根据人类,创建一个学生类Student
增加属性:
学校school、学号stuNumber;
重写工作方法(学生的工作是学习)。
3.根据人类,创建一个工人类Worker
增加属性:
单位unit、工龄workAge;
重写工作方法(工人的工作是盖房子)。
4.根据学生类,创建一个学生干部类 StudentLeader
增加属性:
职务job;
增加方法:开会meeting。
5.编写测试类分别对上述3类具体人物进行测试
package com.jdL.day13homework.question4;public class Person {private String name;private char gender;private int age;private String nationality;//空参public Person() {}//有参public Person(String name, char gender, int age, String nationality) {this.name = name;this.gender = gender;this.age = age;this.nationality = nationality;}public String getName() {return name;}public void setName(String name) {this.name = name;}public char getGender() {return gender;}public void setGender(char gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getNationality() {return nationality;}public void setNationality(String nationality) {this.nationality = nationality;}//行文public void eat(){System.out.println("吃饭");}public void sleep(){System.out.println("睡觉");}public void work(){System.out.println("工作");}
}
package com.jdL.day13homework.question4;public class Student extends Person{private String school;private String stuNumber;public Student() {}public Student(String name, char gender, int age, String nationality, String school, String stuNumber) {super(name, gender, age, nationality);this.school = school;this.stuNumber = stuNumber;}public String getSchool() {return school;}public void setSchool(String school) {this.school = school;}public String getStuNumber() {return stuNumber;}public void setStuNumber(String stuNumber) {this.stuNumber = stuNumber;}@Overridepublic void work(){System.out.println("学习");}}
package com.jdL.day13homework.question4;import com.jdL.day13classwork.Employee;public class Worker extends Person {private String unit;private int workAge;public Worker() {}public Worker(String name, char gender, int age, String nationality, String unit, int workAge) {super(name, gender, age, nationality);this.unit = unit;this.workAge = workAge;}public String getUnit() {return unit;}public void setUnit(String unit) {this.unit = unit;}public int getWorkAge() {return workAge;}public void setWorkAge(int workAge) {this.workAge = workAge;}@Overridepublic void work(){System.out.println("盖房子");}
}
package com.jdL.day13homework.question4;public class StudentLeader extends Student{private String job;public StudentLeader() {}public StudentLeader(String name, char gender, int age, String nationality, String school, String stuNumber, String job) {super(name, gender, age, nationality, school, stuNumber);this.job = job;}public String getJob() {return job;}public void setJob(String job) {this.job = job;}public void meeting(){System.out.println("开会");}
}
package com.jdL.day13homework.question4;public class PersonTest {public static void main(String[] args) {Student s= new Student("张三",'男',18,"中国","广州白云学院","001");s.work();s.sleep();s.eat();System.out.println(s.getName()+s.getAge()+s.getGender()+s.getNationality());System.out.println("-----------------");Worker w=new Worker("李四",'男',20,"美国","广州越秀学院",2);w.work();w.sleep();w.eat();System.out.println(w.getName()+w.getAge()+w.getGender()+w.getNationality());System.out.println("-------------------------------");StudentLeader leader=new StudentLeader("王五",'男',16,"中国","广州天河学院","002","宣传部长");leader.work();leader.sleep();leader.eat();leader.meeting();System.out.println(leader.getName()+leader.getAge()+leader.getGender()+leader.getNationality());}
}
1.定义项目经理类 属性: 姓名 工号 工资 奖金 行为: 工作work 2.定义程序员类 属性: 姓名 工号 工资 行为: 工作work
3.向上抽取一个父类,让这两个类都继承这个父类,共有的属性写在父类中,子类重写父类中的方法
4.编写测试类:完成这两个类的测试
package com.jdL.day13homework.question5;public class Worker {private String salary;//姓名private String strNUmber;//工号public Worker() {}public Worker(String salary, String strNUmber) {this.salary = salary;this.strNUmber = strNUmber;}public String getsalary() {return salary;}public void setsalary(String salary) {this.salary = salary;}public String getStrNUmber() {return strNUmber;}public void setStrNUmber(String strNUmber) {this.strNUmber = strNUmber;}public void work(){System.out.println("工作");}
}
package com.jdL.day13homework.question5;public class Mannage extends Worker {private double bouns;public Mannage() {}public Mannage(String salary, String strNUmber, double bouns) {super(salary, strNUmber);this.bouns = bouns;}public double getBouns() {return bouns;}public void setBouns(double bouns) {this.bouns = bouns;}@Overridepublic void work(){System.out.println("管理工作");}
}
package com.jdL.day13homework.question5;public class Coder extends Worker{public Coder() {}public Coder(String salary, String strNUmber) {super(salary, strNUmber);}@Overridepublic void work() {System.out.println("代码工作");}
}
package com.jdL.day13homework.question5;public class WorkerTest {public static void main(String[] args) {Mannage mannage = new Mannage("123","222",111);mannage.work();System.out.println(mannage.getBouns()+mannage.getsalary()+mannage.getStrNUmber());System.out.println("--------------");Coder coder = new Coder("23","2");coder.work();System.out.println(coder.getsalary()+coder.getStrNUmber());}
}
根据需求完成代码:
1.定义动物类
属性: 年龄,颜色 行为: eat(String something)方法(无具体行为,不同动物吃的方式和东西不一样,something表示吃的东西)
生成空参有参构造,set和get方法
2.定义狗类继承动物类
行为: eat(String something)方法,看家lookHome方法(无参数)
3.定义猫类继承动物类
行为:
eat(String something)方法,逮老鼠catchMouse方法(无参数)
4.定义Person类
属性: 姓名,年龄
行为: keepPet(Dog dog,String something)方法
功能:喂养宠物狗,something表示喂养的东西
该方法调用后打印结果为:颜色为黑色的2岁的狗,在吃骨头
行为: keepPet(Cat cat,String something)方法 功能:喂养宠物猫,something表示喂养的东西
该方法调用后打印结果为:颜色为白色的2岁的猫,在吃小鱼干
5.生成空参有参构造,set和get方法
6.测试以上方法
package com.jdL.day13homework.question6;public class Animals {private int age;private String color;private String name;public Animals() {}public Animals(int age, String color, String name) {this.age = age;this.color = color;this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getColor() {return color;}public void setName(String color) {this.color = color;}public String getName() {return name;}public void setColor(String color) {this.color = color;}public String eat(String something){return "正在吃"+something;}
}
package com.jdL.day13homework.question6;import jdk.jfr.Name;public class Dog extends Animals {public Dog() {}public Dog(int age, String color, String name) {super(age, color,name);}@Overridepublic String eat(String something){return "正在吃"+something;}public void lookHome(){}
}
package com.jdL.day13homework.question6;public class Cat extends Animals{public Cat() {}public Cat(int age, String color, String name) {super(age, color,name);}//public String eat(String something){return "正在吃"+something;}
}
package com.jdL.day13homework.question6;public class Person {private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//public void keepPet(Dog dog,String something){System.out.println("颜色为"+dog.getColor()+"的"+dog.getAge()+"岁的"+dog.getName()+dog.eat(something));}public void keepPet(Cat cat,String something){System.out.println("颜色为"+cat.getColor()+"的"+cat.getAge()+"岁的"+cat.getName()+cat.eat(something));}
}
package com.jdL.day13homework.question6;public class MainTest {public static void main(String[] args) {//new一个dog出来Dog dog = new Dog(2,"黑色","狗");//new一个cat出来Cat cat = new Cat(2,"白色","猫");//new一个person出来Person person = new Person();person.keepPet(dog,"骨头");person.keepPet(cat,"小鱼干");}
}
