一.实验目的

(1)掌握类的继承方法

(2)变量的继承和覆盖,方法的继承,重载和覆盖实现

二.实验内容

三.实验过程

1. 实验源码

package test;
import java.util.Scanner;
class Circle{
private double radius;//定义半径
public double getRadius() {//取得Radius属性
return radius;
}
public void setRadius(double radius) {//设置Radius属性
this.radius = radius;
}
public Circle() {//声明第一个构造方法设置Radius为0
setRadius(0);
}
public Circle(double r) {//声明第二个构造方法设置Radius为传递的参数值r
setRadius(r);
}
public double getPerimeter() {//取得周长
return 2*Math.PI*getRadius();
}
public void disp() {//输出
System.out.println("圆的半径为:"+getRadius());
System.out.println("圆的周长为:"+getPerimeter());
System.out.println("面积为:"+Math.pow(getRadius(),2)*Math.PI);
}
}
public class 实验四1 { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
Circle pr=new Circle();
pr.disp();
System.out.println("请输入半径:");
double r=sc.nextDouble();
pr.setRadius(r);
pr.disp();
}
}

实验结果

2.实验源码

package test;
import java.util.Scanner; class Cylinder extends Circle {//Cylinder是Circle的子类
private double height;
public double getHeight() {//取得圆柱体的高
return height;
} public void setHeight(double height) {//设置圆柱体的高
this.height = height;
} public Cylinder(double r,double h) {//定义对象后设置圆柱体的半径和高
setRadius(r);//调用父类的方法
setHeight(h);
}
public double getVol() {//取得圆柱体的体积
return Math.pow(getRadius(),2)*Math.PI*getHeight();
}
public void dispVol() {//输出
System.out.println("圆柱体的体积为:"+getVol());
}
} public class 实验四2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入圆的半径:");
double r=sc.nextDouble();
System.out.println("请输入圆的高:");
double h=sc.nextDouble();
Cylinder pr=new Cylinder(r,h);//调用子类构造方法,传递参数r,h
pr.disp();
pr.dispVol();
}
}

实验结果

3.

在2.中已实现

结论

我感觉本次实验主要是考察继承的简单应用,实验内容1不难,主要是写一个类,实验内容2写一个子类,并对父类进行扩展。

在同一个包中,子类可以直接在另一个class文件中写,而不需要把父类再写一遍。在定义子类对象时,若子类中有构造方法,

则要直接调用构造方法,这个我发现后,还没搞懂,其余的还好。

课程总结

接口

接口可以理解为一种特殊的类

1.接口的定义

interface 接口名称{
全局常量;
抽象方法;
}

在接口中如果不写public,则也是public访问权限,接口中的方法永远是public。

2.接口实现

接口的使用要通过子类,子类通过implements关键字实现接口

class 子类 implements 接口A,接口B,····{//一个子类可以同时实现多个接口
}

对象的多态性

对象的多态性主要分两种类型:

(1)向上转型:子类对象->父类对象

(2)向下转型:父类对象->子类对象

对象转型

对象向上转型:父类 父类对象=子类实例    //向上转型,程序会自动完成
对象向下转型:子类 子类对象=(子类)父类实例

如果对象发生了向上转型关系,所调用的方法一定是被子类覆写过的方法,若一种方法只在子类中定义,

而没有在父类中定义,如果要想调用子类定义的其他方法,肯定要使用子类实例。

对象在进行向下转型之前,必须首先发生对象向上转型,否则会出现对象转换异常。

第六周课程总结&试验报告(四)的更多相关文章

  1. 第六周课程总结&java实验报告四

    第六周课程总结: 一.instanceof关键字 1.作用:在Java中可以使用instanceof关键字判断一个对象到底是哪个类的实例. 2.格式:对象 instanceof 类 -> 返回b ...

  2. 第六周课程总结&实验报告(四)

    实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表 ...

  3. 20145302张薇《Java程序设计》第十六周课程总结

    20145302 <Java程序设计>第十六周课程总结 实验报告链接汇总 实验一 Java开发环境的熟悉 实验二 Java面向对象程序设计 实验三 敏捷开发与XP实践 实验四 Andoid ...

  4. 第五周课程总结&试验报告(三)

    第五周课程总结&试验报告(三) 实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 ###1.已知字符串:"this is a ...

  5. 第六周学习总结&第四次实验报告

    第六周学习总结&第四次实验报告 学习总结 这周我们简单的学习了一点点关于接口的内容,接口是Java中最重要的概念之一,接口可以理解为一个特殊的类, 里面由全局常量和公共的抽象方法组成,接口摆脱 ...

  6. 第六周&java实验报告四

    实验报告: 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:rad ...

  7. 第五周课程总结&试验报告三

    第五周课程总结 一.第五周课程总结 1.this关键字 this可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用.当一个类的属性(成员变量)名与访问该 ...

  8. 第六周&Java实验报告四(类的继承)

    一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...

  9. 第六周总结&实验报告四

    这周是放国庆节的假,所有没有进行深入的学习,只是写了个实验的题目,也发现了自己在基础上还是要加强学习. 实验四 类的继承 一. 实验目的 (1) 掌握类的继承方法: (2) 变量的继承和覆盖,方法的继 ...

随机推荐

  1. Spring Boot 之 Profile --快速搞定多环境使用与切换

    Spring Profile是Spring3引入的概念,主要用在项目多环境运行的情况下,通过激活方式实现多环境切换,省去多环境切换时配置参数和文件的修改,并且Spring profile提供了多种激活 ...

  2. Poj 3057 未AC http://poj.org/showsource?solution_id=15175171

    <span style="font-size:18px;">#include <iostream> #include <cstdio> #inc ...

  3. HGOI20190814 省常中互测7

    Problem A 中间值 对于$2$个非严格单增序列$\{A_n\} , \{B_n\}$,维护下列两个操作: 1 x y z: (x=0)时将$A_y = z$ , (x=1)时将$B_y = z ...

  4. 套接字之select系统调用

    select是IO多路复用的一种方式,用来等待一个列表中的多个描述符的可读可写状态: SYSCALL_DEFINE5(select, int, n, fd_set __user *, inp, fd_ ...

  5. 【编程漫谈】Hello world!

    Hello world!是打开编程世界的第一把钥匙,只要你能运行出Hello world!,基本上就算入了个门了,因为程序正确的运行代表着基本开发环境都有了,包括编辑器,编译器,解释器,运行环境等待, ...

  6. Uep必填字段校验

    在开发中常常有必填字段, <span style="color:Red">*</span>服务地址:</td><hy:formfield ...

  7. block(块级元素)和 inline(内联元素) 的区别

    block(块级元素)和 inline(内联元素) 的区别 (2009-01-05 10:32:07) 转载▼ 标签: 杂谈 分类: div+css div这样的块级元素,就会自动占据一定矩形空间,可 ...

  8. 前端必须掌握的 nginx 技能(2)

    概述 作为一个前端,我觉得必须要学会使用 nginx 干下面几件事: 代理静态资源 设置反向代理(添加https) 设置缓存 设置 log 部署 smtp 服务 设置 redis 缓存(选) 下面我按 ...

  9. 戴尔服务器IDRAC命令配置IP地址

    在工作中我们可能会遇到,在配置管理卡的时候,由于疏忽,把网关配置错误(但是你肯定的是IP没有错),导致不能正常连接管理卡,这是有两个办法,第一:你去机房,进行查看进行修改,第二:你登陆交换机,从交换机 ...

  10. ubuntu中将本地文件上传到服务器

    (1)在本地的终端下,而不是在服务器上.在本地的终端上才能将本地的文件拷入服务器. (2) scp -r localfile.txt username@192.168.0.1:/home/userna ...