java第六次上机作业(继承、多态、Object方法)

1、在 Teacher 类和 Student 类的共同父类中编写一个带参数的构造函数,然后分别在 Teacher 类和 Student 类中用super 给父类构造函数传参数。再编写一个输出详细信息的函数,使之既能够传入一个 Student 对象进行输出,也能够传入一个 Teacher 对象进行输出。

public class sixExecisebackup {
public static void polymor(fa obj){ obj.print();
}
public static void main(String[] args) {
Teacher tests=new Teacher(001,27,"王海","教授",'男');
polymor(tests);

Student test02=new Student(2021,18,"小朱","郑州经贸学院",'男');
polymor(test02);
}
}
class fa{
protected int num,age; 
protected String name; char sex;
fa(int num,int age,String name,char sex){ this.num=num;
this.age=age; this.name=name; this.sex=sex;
}
public void print(){}
}
class Teacher extends fa{ 
protected String range;
Teacher(int num,int age,String name,String range,char sex){ super(num,age,name,sex);
this.range=range;
}
public void print(){
System.out.println("编号:"+num+"姓名:"+name+"年龄:"+age+"性别"+sex+"职称:"+range);
}
}
class Student extends fa{ 
protected String address;
Student(int num,int age,String name,String address,char sex){ super(num,age,name,sex);
this.address=address;
}
public void print(){
System.out.println("编号:"+num+"姓名:"+name+"年龄:"+age+"性别"+sex+"职称:"+address);
}
}

 用到继承、super传参、多态

2、利用成员覆盖(重写)对上述类中的功能进行如下修改:将 fun1 功能替换成自己编写的新功能:输出“新功能 1”,将 fun2 功能后面增加一个功能:输出“新增功能 2”,将 fun3 功能屏蔽,将 fun4 功能保持原样。

public class zwb102402 {
public static void main(String[] args) { override test05=new override(); test05.fun1();
test05.fun2(); test05.fun4();
}
}
class previousFunction{
public void fun1(){System.out.println("原始功能 1");} public void fun2(){System.out.println("原始功能 2");} public void fun3(){System.out.println("原始功能 3");} public void fun4(){System.out.println("原始功能 4");}
}
class override extends previousFunction{
public void fun1(){System.out.println("新功能 1");} public void fun2(){
super.fun2();
System.out.println("新增功能 2");
}
public void fun4(){super.fun4();}
}

函数的重写/成员覆盖:子类的成员函数与父类相同(函数名、参数列表、返回类型相同),最后调用时会调用子函数的成员函数;

3、编写一个 Book 类,含有书名、ISBN 号、作者、定价几个成员变量。通过使用 Object 类的两种方法实现:编写 toString 函数将其详细信息用字符串形式输出;编写equals 函数自定义两个 Book 对象相等的条件为书名和ISBN 号相等

public class zwb102404 {
public static void main(String[] args) {
Book test1=new Book("哈利波特与魔法石","978-0333A-3322BVN345","罗琳",45); 
Book test2=new Book("哈利波特与魔法石","978-0333A-3322BVN345","罗琳",45); 

System.out.println(test1.equals(test2));
}
}
class Book {
protected String book, num, writer; int money;
Book(String book, String num, String writer, int money) { 
this.book = book;
this.num = num; this.writer = writer; this.money = money;
}
public boolean equals(Book test){ 
if(book.equals(test.book)&&num.equals(test.num)){
return true;
}
return false;
}
public String toString(){
return "书名:"+book+"编号:"+num+"作者:"+writer+"金额:"+money;
}
}

object的两种方法:toString、equals;

equals与==不同;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值