1903021130-杨建-Java第十一周作业-继承、多态及抽象类的运用
项目 | 内容 |
课程班级博客链接 | 19级信计班(本) |
这个作业要求链接 | 第十一周作业 |
博客名称 | 1903021130-杨建-Java第十一周作业-继承、多态及抽象类的运用 |
要求 | 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果) |
扩展阅读:Java中的继承和多态、Java中的抽象类
阅读心得:1.通过abstract修饰的java类就是抽象类。
2、抽象类的子类往往都是同一种类型。抽象类实际上就是提供同一种类型事物的公共内容,由抽象类的子类根据自身的实际情况,来实现这个抽象类提供的公共内容。这样子类就不需要创建这个公共内容,只需要继承来重写一下就好。
3、抽象类中的元素:局部变量不能在其他的方法中访问(不需要考虑)类 : 实例变量,静态成员变量,构造方法,实例方法,静态方法;抽象类: 实例变量,静态成员变量,构造函数,实例方法,静态方法。
题目1:
类Person定义了姓名name,出生年份birthYear,其子类Graduate在继承父类的基础上新增定义了成绩gpa、毕业年份graduateYear。编写测试类,输出毕业生的姓名、年龄、毕业年份、成绩。
提示:父类要有构造方法,子类通过super调用父类构造方法。
代码:
package week11; public class Person { String name ; int birthYear; public Person(String name, int birthYear) { super(); this.name = name; this.birthYear = birthYear; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getBirthYear() { return birthYear; } public void setBirthYear(int birthYear) { this.birthYear = birthYear; } } package week11; public class Graduate extends Person { int gpa; int graduateYear; public Graduate(String name, int birthYear, int gpa, int graduateYear) { super(name, birthYear); this.gpa = gpa; this.graduateYear = graduateYear; } public int getGpa() { return gpa; } public void setGpa(int gpa) { this.gpa = gpa; } public int getGraduateYear() { return graduateYear; } public void setGraduateYear(int graduateYear) { this.graduateYear = graduateYear; } } package week11; public class Test { public static <Greduate> void main(String[] args) { // TODO Auto-generated method stub Graduate G = new Graduate("电击小子",2000,66,2021); System.out.println("姓名:"+G.getName()+"\n年龄:"+(G.getGraduateYear()-G.getBirthYear())+"\n毕业年份:"+G.getGraduateYear()+"\n成绩:"+G.getGpa()); } }
截图如下:
题目2:
定义一个基本类Shape,有一个draw方法,定义三个类Circle(圆)、Triangle(三角形)、Square(正方形)都继承于Shape。在测试类中定义一个方法doStuff,传入基本类shape为参数,并调用draw方法。使用父类Shape创建三个类Circle、 Triangle、Square的实例对象并分别作为参数传入draw方法中。
提示:多态
代码:
package week11; public class Shape { void draw(){ } } package week11; public class Circle extends Shape { void draw (){ System.out.println("Circle.draw方法 ()"); } } package week11; public class Triangle extends Shape { void draw (){ System.out.println("Triangle.draw方法 ()"); } } package week11; public class Square extends Shape { void draw (){ System.out.println("Square.draw方法 ()"); } } package week11; public class Test2 { public static void main(String[] args) { // TODO Auto-generated method stub Circle C = new Circle(); C.draw(); Triangle T = new Triangle(); T.draw(); Square S = new Square(); S.draw(); } }
截图如下:
题目3:
所有的动物都有一个父类Animal,再定义两个子类Bird(鸟)和Dog(狗)继承自Animal,并实现父类中的bark(叫唤)方法
提示:抽象
代码:
package week11; public abstract class Animal { abstract void bark(); } package week11; public class Bird extends Animal { void bark() { // TODO Auto-generated method stub System.out.println("小雀叽叽喳喳"); } } package week11; public class Dog extends Animal { @Override void bark() { // TODO Auto-generated method stub System.out.println("狗叫汪汪汪"); } } package week11; public class Test3 { public static void main(String[] args) { // TODO Auto-generated method stub Animal B = new Bird(); Animal D = new Dog(); B.bark(); D.bark(); } }
截图如下:
题目4:
不同几何图形的面积计算公式是不一样的,可是,它们具有的特性是一样的,都具有长和宽这两个属性,也都具有面积计算的方法。根据抽象的概念计算长方形的面积和三角形的面积。
提示:抽象
代码:
package week11; public abstract class Area { int Width; int Height; public Area(int width, int height) { super(); this.Width = width; this.Height = height; } } package week11; public class Triangle2 extends Area { public Triangle2(int width, int height) { super(width, height); // TODO Auto-generated constructor stub } void Area(){ System.out.println("三角形的面积是:"+Width*Height*0.5); } } package week11; public class Square2 extends Area { public Square2(int width, int height) { super(width, height); // TODO Auto-generated constructor stub } void Area(){ System.out.println("长方形的面积是:"+Width*Height); } } package week11; public class Test4 { public static void main(String[] args) { // TODO Auto-generated method stub Triangle2 T= new Triangle2(20, 30); T.Area(); Square2 S =new Square2(11, 12); S.Area(); } }
截图如下:
搜索
复制