java综合题、继承、接口、抽象类
大家好,本次分享一个考验综合能力的小题
题目是这样的:9、定义一个抽象的”Role”类,有姓名,年龄,性别等成员变量
1.要求尽可能隐藏所有变量,再通过GetXXX和SetXXX方法对各变量进行读写。具有一个抽象的play方法,该方法不返回任何值,同时至少定义两个构造方法。Role类中要体现出this的几种用法。
2.从Role类派生出一个”Employee”类,该类具有Role类的所有成员,并扩展
salary成员变量,同时增加一个静态成员变量“职工编号”。同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play方法,并提供一个final sing 方法。
3.“Manager” 类继承”Employee”类,有一个final成员变量”vehicle”
4.在 main方法中制造Manager和Employee对象,并测试这些对象的方法
看到这个题的时候,大家是不是感觉题的内容很多,其实不然,我们可以把题目一步一步分解
直接看代码:
首先,我们定义一个类,设置好变量,用set、get方法实现传值,后面写带参构造方法,并灵活运用this关键字。
package com.interface7;
public abstract class Role {
private String name;
private int age;
private String sex;
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 String getSex() {
return sex;}
public void setSex(String sex) {
this.sex = sex;}
public void play() {
System.out.println("打篮球");}
public Role(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;}
public Role() {
this("唐三", 19, "男");}}
接下来,跟着题意走:
写一个子类去继承Role,在写两个变量,一个静态的变量,写两个成员方法,写一个继承构造方法,一个子类的构造方法,后面为了方便区分结果,重写play方法。
public class Employee extends Role{
double salary;
static String bianhao;
public Employee(String name, int age, String sex, double salary) {
super(name, age, sex);
this.salary = salary;
System.out.println("姓名:"+name+",年龄"+age+",性别:"+sex+",工资:"+salary);
}
public Employee() {
// TODO Auto-generated constructor stub
this("小舞", 18, "女", 1314);
}
public Employee(String name, int age, String sex) {
super(name, age, sex);
System.out.println("姓名:"+name+",年龄"+age+",性别:"+sex);
}
public void play() {
System.out.println("打排球");
}
public final void sing() {
System.out.println("小舞喜欢唱歌");
}
}
那么本题里,说写一个final的变量,也就是最终类
public class Manager extends Employee{
final int vehicle = 5;
}
下面,就是测试类,首先,创建对象,调用调用set方法传值,打印get方法。
创建两个不同的带参构造方法,并分别传不同值。
最后,我们直接打印final的方法(final不能被创建对象,也不能继承)
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Manager m = new Manager();
m.setName("唐昊");
m.setAge(32);
m.setSex("男");
System.out.println("姓名:"+m.getName()+",年龄"+m.getAge()+",性别:"+m.getSex());
m.play();
m.sing();
Employee e = new Employee("奥斯卡",19,"男",1000);
Employee e1 = new Employee("马红俊",19,"男");
System.out.println("车辆:"+m.vehicle);
}
}
好了,本次的题就分享代这里,希望大家学有所获,加油。后面,我会和大家分享一些制作小游戏的实验。喜欢就关注点赞的三连吧!
下面是效果图