Java实验作业08(抽象类,接口)

把这学期的Java作业整理了一下,有十几次实验作业吧,连续更新。

1、自拟一个案例,满足以下条件即可

1)定义一个抽象类,里面有至少一个抽象方法。

2)定义两个类继承该抽象类,并各自将抽象方法实现(重写)。

3)定义两个接口,各包含一个抽象方法。

4)将这两个类各自实现(即学习,关键字implement)一个抽象方法。

5)在实现类中(包含mian函数的类)分别创建两个类的对象并使用各自接口的方法。

6)下方增加了关系图方便理解,其他自由发挥,注图中的A、B、1、2仅为了区分,实际代码中不要求把类名命名成A,包括接口也一样,类名接口名根据自己的案例灵活命名。

在这里插入图片描述
Cat类

package 实验10;

interface jk02 {
	void eat();
}

class Cat extends Animal implements jk02 {

	void species() {
		System.out.println("这是猫");

	}

	public void eat() {

		System.out.println("猫吃鱼");
	}

}

Dog类

package 实验10;

interface jk01{
	void eat();
}

class Dog extends Animal implements jk01{
	

	void species() {
		System.out.println("这是狗");
		
	}

	public void eat() {
		
		System.out.println("狗吃骨头");
	}

}

MyTest类

package 实验10;

abstract class Animal {

	abstract void species();
}

public class MyTest {

	public static void main(String[] args) {

		Dog d = new Dog();
		d.species();
		d.eat();
		Cat c = new Cat();
		c.species();
		c.eat();

	}

}
、Person的多态性设计。 设计一个Person,其包含一个方法pay(),计算工资支出。再从Person派生出助教(Assistant)、讲师Instructor)、副教授(AssistantProfessor)和教授(Professor)。其:工资支出=基本工资+授课时数teachingHours*每课时课金。 助教基本工资为800元,每课时课金25元;讲师基本工资为1000元,每课时课金35元;副教授基本工资为1200元,每课时课金40元;教授基本工资为1400元,每课时课金50元;在主方法显示各人员的工资支出。用以下两种方式实现: ○1将Person设计为抽象类,pay()为抽象方法,设计程序实现多态性。 ○2将Person设计为接口,设计程序实现多态性。 提示:设置授课时数teachingHours为成员变量,计算工资支出为成员方法,考虑是否定义构造方法。 2、编写一个Java程序,在程序定义一个接口Achievement,其有一个计算平均的抽象方法avg();定义一个父Person,其有数据成员:姓名name和年龄age,构造方法初始化数据成员name和age,重写toString()方法显示成员信息;定义一个子Student继承Person并实现接口Achievement,增加数据成员:语文成绩chnScore、数学成绩mathScore和英语成绩engScore,增加设置三门课成绩的setScore()方法,并实现接口Achievement的计算平均的抽象方法avg(),主函数测试,部代码如下所示: Student s=new Student(“张三”,16); //创建子对象 System.out.println(s.toString()); //显示s的个人信息,调用继承父的toString方法 s.setScore(80,88,95); //设置三门课的成绩 System.out.printf(“三门课的平均:%.2f”, s.avg()); //显示对象s的三门课的平均 输出结果如下: 姓名:张三,年龄:16 三门课的平均:87.67 3、编写一个Java程序,在程序定义一个School,在School定义一个内部Student,别创建这两个的对象,访问各个对象方法,其: School: 数据成员:学院名称schoolName; 成员方法:显示信息方法showSchoolMsg():在方法创建内部Student的对象,并显示该对象的信息(调用内部Student的显示信息的成员方法)。 Student: 数据成员:姓名sname,年龄sage; 构造方法,初始化姓名sname、年龄sage以及所属学院名(即外部数据成员:学院名称schoolName); 成员方法:显示信息showStudentMsg(),显示的信息包括:姓名、年龄以及所属学院名。 主函数测试,部代码如下所示: …… // 创建外部School的对象 …… // 通过外部对象调用其显示信息的方法showSchoolMsg() System.out.println(“-------------我是华丽的割线-------------”); …… // 创建内部Student的对象 …… // 通过内部对象调用其显示信息的方法showStudentMsg()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据攻城小狮子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值