实验四 类的继承

•实验目的

•理解抽象类与接口的使用;

•了解包的作用,掌握包的设计方法。

•实验要求

•掌握使用抽象类的方法。

•掌握使用系统接口的技术和创建自定义接口的方法。

•了解 Java 系统包的结构。

•掌握创建自定义包的方法。

•实验内容

(一)抽象类的使用

1.设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。

注:三角形面积s=sqrt(p(p-a)(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2

2.编程技巧

(1) 抽象类定义的方法在具体类要实现;

(2) 使用抽象类的引用变量可引用子类的对象;

(3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法。可将所有对象存入到父类定义的数组中。

package chouxianglei;

abstract class shape {
public abstract double print();
}
class sanjiao extends shape {
private double a;
private double b;
private double c;
public sanjiao(double a,double b,double c){
this.a=a;
this.b=b;
this.c=c;
}
public double print() {
double p=(a+b+c)/2;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
}
class juxing extends shape {
private double width;
private double height;
public juxing(double width, double height){
this.height=height;
this.width=width;
}
public double print() {
return width*height;
}
}
class yuan extends shape {
double radious;
public yuan(double radious){
this.radious=radious;
}
public double print() {
return Math.PI*radious*radious;
}
}
public class chouxianglei {
public static void main(String[] args){
shape s1=new sanjiao(3,4,5);
shape s2=new juxing(5,8);
shape s3=new yuan(6);
System.out.println("三角形的面积为: "+s1.print());
System.out.println("矩形的面积为: "+s2.print());
System.out.println("圆的面积为: "+s3.print());
}
}

(二)使用接口技术

1定义接口Shape,其中包括一个方法size(),设计“直线”、“圆”、类实现Shape接口。分别创建一个“直线”、“圆”对象,将各类图形的大小输出。

2.编程技巧

(1) 接口中定义的方法在实现接口的具体类中要重写实现;

(2) 利用接口类型的变量可引用实现该接口的类创建的对象

package jiekou;

public interface Shape {
public abstract void size();
}
class zhixian implements Shape{
private double zhixian;
public zhixian(double zhixian){
this.zhixian=zhixian;
}
public void size() {
System.out.println("直线的长度: "+zhixian); }
}
class yuan implements Shape{
private double radious;
public yuan(double radious){
this.radious=radious;
}
public void size(){
System.out.println("圆的面积: "+Math.PI*radious*radious); }
}
package jiekou;

public class jiekou {
public static void main(String[] args){
Shape s1=new zhixian(5);
Shape s2=new yuan(7);
s1.size();
s2.size();
}
}

第七周学习总结

1.Object类:公共父类。所有的对象都可以向Object类进行向上转型。

2.通过实验报告五自己动手编写代码,学习了抽象类与接口的运用。

3.抽象类不能直接用来产生对象,必须通过对象的多态性进行实例化操作。

4.抽象类与接口的区别:抽象类有单继承的局限,但是接口就没有等等。

第七周&实验报告五的更多相关文章

  1. 20165337第七周实验报告《Java面向对象程序设计》

    实验报告封面 实验内容及步骤 实验一.实现百分制成绩转成"优.良.中.及格.不及格"五级制成绩的功能 代码 public class MyUtil{ public static S ...

  2. 第j九周学习总结暨第七周实验报告

    完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. 一:实验代码 package d ...

  3. 第七周实验报告&课程总结

    一.完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. 代码: public cla ...

  4. Java实验报告五:Java网络编程及安全

    Java实验报告五:Java网络编程及安全                                                                               ...

  5. 20145205 《Java程序设计》实验报告五:Java网络编程及安全

    20145205 <Java程序设计>实验报告五:Java网络编程及安全 实验要求 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.客户端中输入明文,利用DES算法加密,D ...

  6. 20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计

    20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 ...

  7. 20145221 《Java程序设计》实验报告五:网络编程及安全

    20145221 <Java程序设计>实验报告五:网络编程及安全 实验要求 掌握Socket程序的编写 运行TCP代码包,结对进行,一人服务器,一人客户端 掌握密码技术的使用 利用加解密代 ...

  8. 20135302魏静静——linux课程第七周实验及总结

    linux课程第七周实验及总结 实验及学习总结 1. 编译链接的过程和ELF可执行文件格式(以hello为例) GNU编译系统编译源码: 首先,运行C预处理器(cpp),将.c文件翻译成.i文件——g ...

  9. 第七周总结&第五次实验报告

    学习总结 这周我们加深了对抽象类与接口的学习,获得的知识点也比上周多了许多,抽象类与接口很相似,就比如别人还没有做完的是交给你来做,而他那些样式都做好了,你只需要完善即可 但也有不同点. 区别点 抽象 ...

随机推荐

  1. 工作中常用的Linux命令:crontab命令,定时任务执行命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...

  2. Confluence 6 Office 和 PDF 文件

    插入一个文件到页面中是能够让你将有用的文件,电子表格,幻灯片或者其他可用的文件在你小组中进行分享的好方法. 针对所有的文件类型,你可以选择以链接方式插入一个文件.缩略图将会对文档的内容进行预览同时可以 ...

  3. 格子游戏x(并查集)

    格子游戏 [问题描述] Alice和Bob玩了一个古老的游戏:首先画一个n * n的点阵(下图n = 3) 接着,他们两个轮流在相邻的点之间画上红边和蓝边:           直到围成一个封闭的圈( ...

  4. 1143, 3997: Dilworth定理的简单应用

    偏序集上的最小链覆盖等于最长反链 于是两道题 1143: [CTSC2008]祭祀river 求偏序集上的最长反链 转换成偏序集上的最小链覆盖 求个闭包,转换成最小路径覆盖,二分图匹配一发 #incl ...

  5. THUWC 2019游记

    坑先占着QwQ 不太喜欢写Blog, 因此我的Blog一直很冷清,但是还是想写写这种游记啦,反正是给自己看的 Day -4 颓了一整天,一道题都没写 于是无聊用GL写了一个海战游戏,让两个程序对打-- ...

  6. Android_(菜单)选项菜单

    Android系统中菜单分为Options Menu.Context Menu.Sub Men三种 Options Menu和Context Menu属于一级菜单 Sub Menu属于Options ...

  7. 在浏览器访问Tomcat的时候报错java.lang.IllegalArgumentException: Control character in cookie value or attribute.

    出现这种情况的原因就是因为cookie中存在中文或者特殊符号造成的,应为Tomcat7不支持 解决方法: 1,首先必须先删除本地的cookie,否则项目无法访问 2,然后调整编码就行了

  8. vmx转换ofv模板,导入esxi

    使用VMware Workstation安装目录下\OVFTool文件的ovftool.exe工具: 转换示例: 首先进入OVFTool根目录.然后执行 ovftool.exe "D:\ce ...

  9. Linux高级调试与优化——内存管理

    1.物理地址和虚拟地址 Linux采用页表机制管理内存,32位系统中页大小一般为4KB,物理内存被划分为连续的页,每一个页都有一个唯一的页号. 为了程序的的可移植性,进程往往需要运行在flat mem ...

  10. mysql5.7.25搭建mysql-5.7.25.tar.gz包(亲验)

    STEP 1. 下载 去往官方下载MySQL包.http://dev.mysql.com mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz STEP 2. 解压缩 ...