//主函数:
package job;
import java.util.ArrayList;
import java.util.Scanner;
public class Job {
ArrayList<Sum> list=new ArrayList<Sum>();
//创建Sum类型的数组 list
void listadd(Sum w) {
list.add(w);
}
void print() {
for(Sum w:list) {
w.print();//在父类Sum中构建输出函数print 需要子类的输出函数名与父类相同,否则需要单独敲输出函数
}
}
//以joblist为例子 以下情况就是子类的输出函数与父类不同,换言之,子类从父类继承的输出函数输出为空
void print1() {
for(Sum w:list) {
w.print1();
}
}
public static void main(String[] args) {
Job user=new Job();
Scanner in=new Scanner(System.in);
user.listadd(new joblist(1,"C省题","完成一题","A")); //new一个joblist的匿名对象,导入数据进list的数组里
user.print1();
user.listadd(new Sport("跳绳","300个")); //new一个Sport的匿名对象,导入数据进list的数组里
user.print();
}
}
//父类:
package job;
//创建父类Sum
public class Sum {
//父类有的函数和成员变量 两个子类都会有,父类存在的意义就是尽量避免不良代码也就是复制粘贴代码的出现和维护代码
String sport1;
int line;
String title;
String word;
String priority;
public void print() {
}
public void print1(){
}
void pr() {
System.out.println("C&L");
}
void pr(String a) {
System.out.println(a);
}
}
//子类:
package job;
public class Sport extends Sum{//关键字extends+父类 表明本类为子类,extends后为父类
public String sport1;//运动类型
public String sport2;//运动优先级
public Sport(String sport1, String sport2) {
super();//需要放在构造函数的第一句。具体用法参考其他博客,太长了说不完.
this.sport1 = sport1;
this.sport2 = sport2;
}
public void print() {//与joblist同理
System.out.print(sport1+":"+sport2);
}
public static void main(String[] args) {
}
}
//子类:
package job;
public class joblist extends Sum {////关键字extends+父类 表明本类为子类,extends后为父类
public joblist(int line, String title, String word, String priority) {
this.line = line;
this.title = title;
this.word = word;
this.priority = priority;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
}
public void print1() {//相当于从Sum继承print1,但是需要在这里敲需要输出的数据内容
// TODO 自动生成的方法存根
System.out.println(line+title+":"+word+"("+"优先级:"+priority+")");
}
}