关于JAVA的一道题目的做法 10
项目目的:
理解类的基本知识,了解继承的相关基本知识。
项目的具体要求:
1、 定义一个person类类作为父,有属性:姓名,年龄,班级,注意这里我们主要面向同一班级,所以班级的名称对于所有对象来说是相同的,思考班级这个成员变量可以加什么关键字。需要写出全部的构造函数,三个成员变量可以写出多少个构造函数呢?定义一个方法,这个方法是下面两个子类都有的,只是子类可以对这个方法进行覆盖重写,比如学生类主要是学习,教师类主要是工作。
2、 定义一个学生类和教师类两个子类,必须定义构造函数,而且必须体现子类构造函数和父类构造函数的继承关系,注意this和super关键字的使用。学生类加上学时数,教师类加上基本工作量。学生类的学时数可以定义为一个符号常量。
3、 必须有主函数,用多个子类的构造函数来创建对象,并指挥对象干活,可以指挥对象调用成员变量和成员方法。
4、 在主函数里面,体现上转型对象的使用。
完成项目后,请大家以文档的方式整理如下问题
1、 构造函数的特征,构造函数的作用,在继承中构造函数又有什么特征,在继承中super和this分别有什么作用
2、 Static关键字和final关键有什么特征和作用。 展开
public abstract class Person {
protected String name;// 姓名
protected int age;// 年龄
protected static String className;// 班级
public Person() {}
public Person(String name) {
this.name = name;
}
public Person(int age) {
this.age = age;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person(String name, String className) {
this.name = name;
Person.className = className;
}
public Person(String name, int age, String className) {
this(name, age);
Person.className = className;
}
public abstract void doJob();
}
public class Student extends Person {
private static final int studyHours = 100; // 学时
public static int getStudyhours() {
return studyHours;
}
public void doJob() {
System.out.println("my name is " + this.name);
System.out.println("my age is " + this.age);
System.out.println("my className is " + className);
System.out.println("I am studying");
System.out.println();
}
public Student() {
super();
}
public Student(String name, int age, String className) {
super(name, age, className);
}
public Student(String name, int age) {
super(name, age);
}
}
public class Teacher extends Person {
private int jobNum; // 工作量
public void doJob() {
System.out.println("my name is " + this.name);
System.out.println("my age is " + this.age);
System.out.println("my className is " + className);
System.out.println("my jobNum is " + this.jobNum);
System.out.println("I am teaching");
System.out.println();
}
public Teacher() {
super();
}
public Teacher(String name, int age, String className) {
super(name, age, className);
}
public Teacher(String name, int age, int jobNum) {
super(name, age);
this.jobNum = jobNum;
}
}
public class Main {
public static void main(String[] args) {
Person teacher = new Teacher("teacher", 30, 100);
Person student1 = new Student("student1", 10, "一班");
Person student2 = new Student("student2", 11);
teacher.doJob();
student1.doJob();
student2.doJob();
}
}
这个确定可以用是不是呀
我是按你给的题目来写的,应该可以用吧