【Java】第8章JAVA继承和多态头歌Educoder实训作业(⼋)
第1关:学习-Java继承和多态之⼦类继承性
任务描述
本关任务:定义⼀个 Dog 类,继承 Animal 类(Animal 类已经定义),定义⾃⼰的性别属性,并定义获取和设置性别属性的⽅法和 sleep ⽅法。
相关知识
继承是 Java ⾯向对象编程技术的⼀块基⽯,因为它允许创建分等级层次的类。
继承就是⼦类继承⽗类的特征和⾏为,使得⼦类对象(实例)具有⽗类的实例域和⽅法,或⼦类从⽗类继承⽅法,使得⼦类具有⽗类相同的⾏为。
/**
* 任务:定义⼀个 Dog 类,继承 Animal 类,定义⾃⼰的性别属性,并定义获取和设置性别属性的⽅法和 sleep ⽅法。
* 类名为:Dog
*/
// 请在下⾯的Begin-End之间按照注释中给出的提⽰编写正确的代码
/********** Begin **********/
// 定义⼀个Dog的公开类,并继承Animal类
class Dog extends Anaimal{
String Sex;
Dog(String type,String name,int age){
super(type,name,age);
}
public String getSex(){
return Sex;
}
public void setSex(String Sex){
Sex = Sex;
}
public void sleep(){
java的tostring方法System.out.print("⼀只名为"+getName()+"性别为"+getSex()+"的⼩狗,现在"+getAge()+"岁,它正在睡觉");
}
}
//定义⼩狗的性别sex,字符串类型
// 定义获取和设置⼩狗性别的⽅法。
//定义⼩狗的睡觉⽅法,实现输出:⼀只名为xx性别为xx的⼩狗,现在xx岁,它正在睡觉
/********** End **********/
Anaimal类:
public class Anaimal {
private String type;
private String name;
private int age;
public Anaimal(String type, String name,int age){
this.name = name;
this.age = age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getType(){
return type;
}
public void setType(String type){
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
}
Test类:
public class Test {
public static void main(String[] args){
Dog dog =new Dog("哈⼠奇","⼆哈",3);
dog.setSex("雌");
dog.sleep();
}
}
第2关:练习-Java继承和多态之⼦类继承性
任务描述
本关任务:定义⼀个矩形 Rectangle 类和 三⾓形 Triangle 类,都继承 Shape 类,在这两个类中分别定义 ⼀个名为 area 的⽅法,实现计算该形状⾯积的功能(Shape 类已经定义完成,可以在 Shape.java ⽂件查看相应代码)。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提⽰编写程序代码。
要求:在各⾃的⽂件中完成相应的类,点击右侧的代码⽂件可以⽂件的替换。
Rectangle类:
/**
* 任务:定义⼀个矩形 Rectangle 类,继承 Shape 类,
* 在这个类中分别定义⼀个名为 area 的⽅法,实现计算该形状⾯积的功能。 * 类名为:Rectangle
*/
// 请在下⾯的Begin-End之间按照注释中给出的提⽰编写正确的代码
/********** Begin **********/
// 定义⼀个Rectangle的公开类,并继承Shape类
class Rectangle extends Shape{
double area(){
double Height();
double Width();
return a*b;
}
}
// 定义⼀个area⽅法,实现计算矩形⾯积的功能。
/********** End **********/
Triangle类:
/**
* 任务:定义⼀个三⾓形 Triangle 类,继承 Shape 类,
* 在这个类中分别定义⼀个名为 area 的⽅法,实现计算该形状⾯积的功能。 * 类名为:Triangle
*/
// 请在下⾯的Begin-End之间按照注释中给出的提⽰编写正确的代码
/********** Begin **********/
class Triangle extends Shape{
double area(){
double Height();
double Width();
return0.5*a*b;
}
}
/
/ 定义⼀个Triangle的公开类,并继承Shape类
// 定义⼀个area⽅法,实现计算矩形⾯积的功能。
/********** End **********/
Shape类:
public class Shape {
private double height;//该图形的⾼
private double width;// 该图形的底边
public double getHeight(){
return height;
}
public void setHeight(double height){
this.height = height;
}
public double getWidth(){
return width;
}
public void setWidth(double width){
this.width = width;
}
}
Test类:
public class Test {
public static void main(String[] args){
Rectangle rectangle =new Rectangle();
rectangle.setHeight(30);
rectangle.setWidth(20);
Triangle triangle =new Triangle();
triangle.setHeight(10);
triangle.setWidth(15);
System.out.printf("矩形的⾯积:%.2f\n三⾓形的⾯积为%.2f",rectangle.area(),triangle.area());
}
}
第3关-Java继承和多态之⽅法重写(⼀)
任务描述
本关任务:重写 Cat 类中的 toString ⽅法,返回 Cat 类的基本信息。
相关知识
在⼦类中如果创建了⼀个与⽗类中相同名称、相同返回值类型、相同参数列表的⽅法,只是⽅法体中的内容不同,以实现不同于⽗类的功能,这种⽅式被称为⽅法重写(override),⼜称为⽅法覆盖。重写是⼦类对⽗类的允许访问的⽅法的实现过程进⾏重新编写,返回值和形参都不能改变。当⽗类中的⽅法⽆法满⾜⼦类需求或⼦类具有特有功能的时候,需要⽅法重写。
⼦类可以根据需要,定义⾃⼰特定的⽅法。既沿袭了⽗类的功能名称,⼜根据⼦类的需要重新实现⽗类⽅法,从⽽进⾏扩展增强。
/**
* 任务:重写 Cat 类中的 toString ⽅法,返回 Cat 类的基本信息。
*/
class Animal{
private String name;// 动物名称
private int age;// 动物年龄
// 返回动物类的基本信息
public String toString(){
return"Anaimal{"+
"name='"+ name +'\''+
", age="+ age +
'}';
}
}
public class Cat extends Animal{
private String name;// ⼩猫的名称
private int age;// ⼩猫年龄
public Cat(String name,int age){
this.name = name;
this.age = age;
}
// 请在下⾯的Begin-End之间按照注释中给出的提⽰编写正确的代码
/********* Begin *********/
// 重写 Anaimal 中的 toString ⽅法,返回类型为 String,格式:我是⼀只名为xx的⼩猫,今年xx岁了
public String toString(){
return"我是⼀只名为"+name+"的⼩猫,今年"+age+"岁了";
}
/********** End **********/
}
第4关-Java继承和多态之⽅法重写(⼆)
任务描述
本关任务:计算球的表⾯积。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提⽰编写程序代码。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论