一.实验目的

(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. ELK——集中式日志系统

    https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/index.html 基本流程是 Shipper 负责从各种数据源里采集数据,然后 ...

  2. youtube 上 us的站点是有免费的电影。

    us站点有免费: 菲力宾 跟日本的没有免费的 (PHP是菲力宾币)

  3. Docker安装Mysql和Nginx

    1. 序言 将应用容器化更方便于管理,昨天辛辛苦苦安装在宿主机上的,今天狠心重置服务器,学下docker练练手. 2. Get start 2.1 安装Docker 公司的云用的是ubuntu,我自己 ...

  4. CSS3动画之按钮抖动

    今天要分享一组代码,当鼠标悬停在按钮上时.按钮抖动!!! <!DOCTYPE html> <html lang="en"> <head> < ...

  5. poj 2559 Largest Rectangle(单调栈)

    Largest Rectangle in a Histogram Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26549 ...

  6. THUSC2016 成绩单

    题目链接:Click here Solution: 我们设\(f[l][r][x][y]\)表示在原区间\(l\sim r\) 内还未被取走的值最大为\(x\)最小为\(y\)时的代价,这里我们只考虑 ...

  7. Vue成员与指令介绍

    一.Vue介绍 1.什么是vue 通过对框架的了解与运用程度,来决定其在整个项目中的应用范围, 可以独立完成前后端分离式web项目的渐进式JavaScript框架 2.为什么要学vue 三大主流框架之 ...

  8. [CSP-S模拟测试]:组合(欧拉路)

    题目传送门(内部题119) 输入格式 第一行,三个整数$T,M,N$. 接下来的$N$行,每行两个整数$u_i,v_i$($i$从$1$开始编号).允许$u_i=v_i$,也允许同样的简单词多次出现. ...

  9. 自定义实现Java动态代理

    转自:https://www.cnblogs.com/rjzheng/p/8750265.html 一 借助JDK的API实现: 1.先创建一个接口,并实现它 public interface Per ...

  10. js手写笔记

    1.document.write(); 2.document.getElementById("").style.color="red";//sytle.font ...