私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第5章 接口和包

第5章 接口和包
第5章 接口和包

#从安全性和效率角度考虑,java只允许类 的单重继承,但借助于接口,可以实现 多重继承。接口是一组常量和抽象方法 的集合,抽象方法只声明方法头,而没 有方法体。 #包用来组织类和接口,是一组相关类和 接口的集合。包提供了类的访问和保护 管理机制
从安全性和效率角度考虑,java只允许类 的单重继承,但借助于接口,可以实现 多重继承。接口是一组常量和抽象方法 的集合,抽象方法只声明方法头,而没 有方法体。 包用来组织类和接口,是一组相关类和 接口的集合。包提供了类的访问和保护 管理机制

、抽象类和方法 抽象类是供子类继承却不能创建实例的类。用 abstract修饰的类被称为抽象类。抽象类通常包括 个或多个抽象方法(只有方法说明,没有方法体), 抽象类的子类必须完成父类定义的每一个抽象方法, 除非该子类也是抽象类。它的主要用途是用来描述概 念性的内容,这样可以提高开发效率,更好地统一用 户“接口
一、抽象类和方法 抽象类是供子类继承却不能创建实例的类。用 abstract 修饰的类被称为抽象类。抽象类通常包括一 个或多个抽象方法(只有方法说明,没有方法体), 抽象类的子类必须完成父类定义的每一个抽象方法, 除非该子类也是抽象类。它的主要用途是用来描述概 念性的内容,这样可以提高开发效率,更好地统一用 户“接口

定义抽象方法 声明抽象方法需要使用abstract修饰,其一般形式 如下: 【权限修饰符】abstract返回值类型方法名(参数表) 其对于抽象方法不用完成其代码实现,而在派生的 子类中实现所有抽象方法。 其构造方法不能声明为抽象方法。 例如: public abstract area();
定义抽象方法 声明抽象方法需要使用abstract修饰,其一般形式 如下: 【权限修饰符】 abstract 返回值类型 方法名(参数表) 对于抽象方法不用完成其代码实现,而在派生的 子类中实现所有抽象方法。 构造方法不能声明为抽象方法。 例如: public abstract area();

定义抽象类 abstract class 类名称 成员变量, 方法(); 定义一般方法 abstract方法();/定义抽象方法 说明: 1. 抽象类中可以包含有一般方法,也可以包含有抽象方法; 2. 抽象类不能实例化,即使抽象类中没有声明抽象方法,也 不能实例化 3. 抽象类的子类只有给出每个抽象方法的方法体,即覆盖每 个抽象方法后,才能创建子类对象。如果有一个抽象方法 未在子类中被覆盖,该子类也必须被声明为抽象类
定义抽象类 abstract class 类名称 { 成员变量; 方法(); //定义一般方法 abstract 方法(); //定义抽象方法 } 说明: 1. 抽象类中可以包含有一般方法,也可以包含有抽象方法; 2. 抽象类不能实例化,即使抽象类中没有声明抽象方法,也 不能实例化 3. 抽象类的子类只有给出每个抽象方法的方法体,即覆盖每 个抽象方法后,才能创建子类对象。如果有一个抽象方法 未在子类中被覆盖,该子类也必须被声明为抽象类

Java实例 抽象类 public abstract class Shape( public double area(){return 0.0;} public double volume(){return 0.0; public abstract String getName(); public class Point extends Shape{/通过Shape类继承 protected int x,y;//coordinates of the Point public Point(inta,intb){setPoint(a,b):)//带参数的构造器 public void setpoint(int a,int b){ x=a; y-b; public int getx(){return x; public int gety(){return y; public String tostring() {return"["+x+","+y+"]";} public String getName(){return "Point";} //实现抽象方法
Java实例——抽象类 public abstract class Shape{ public double area() { return 0.0; } public double volume() { return 0.0; } public abstract String getName(); } public class Point extends Shape { //通过Shape类继承 protected int x,y; // coordinates of the Point public Point(int a,int b) { setPoint(a,b); } //带参数的构造器 public void setPoint(int a,int b){ x=a; y=b; } public int getX() { return x; } public int getY() { return y; } public String toString() { return "["+x+","+y+"]"; } public String getName() { return "Point"; } //实现抽象方法 }

Java实例— (续) public class Circle extends Point //通过Point类继承 protected double radius; public Circle(double r,int a,int b){ //带参数的构造器 super(a,b); //调用超类构造器 setRadius(r); public void setRadius(double r radius=(r>=0?r:0);) public double getRadius(){return radius; public double area(){return Math.PI*radius*radius; public String tostring() return "Center="+super.tostring()+"Radius="+radius; /引用父类的toString()方法 public String getName(){return "Circle";}
Java实例——(续) public class Circle extends Point { // 通过Point类继承 protected double radius; public Circle(double r,int a,int b){ //带参数的构造器 super(a,b); // 调用超类构造器 setRadius(r); } public void setRadius( double r ) { radius=(r>=0?r:0); } public double getRadius() { return radius; } public double area() { return Math.PI*radius*radius; } public String toString() { return "Center="+super.toString()+"Radius="+radius; } //引用父类的toString()方法 public String getName() { return "Circle"; } }

Java实例一(续) public class Cylinder extends Circle protected double height; //height of Cylinder public Cylinder(double h,double r,int a,int b){ super(r,a,b); setHeight(h); public void setHeight(double h) {height=(h>=0?h:0);} public double getHeight(){return height; public double area(){ return 2*super.area()+2*Math.PI*radius*height; public double volume(){return super.area()*height;} public String tostring() return super.tostring()+"Height="+theight; public String getName(){return "Cylinder";
Java实例——(续) public class Cylinder extends Circle { protected double height; // height of Cylinder public Cylinder(double h,double r,int a,int b){ super(r,a,b); setHeight(h); } public void setHeight(double h) { height=(h>=0?h:0); } public double getHeight() { return height; } public double area(){ return 2*super.area()+2*Math.PI*radius*height; } public double volume() { return super.area()*height; } public String toString() { return super.toString()+"Height="+height; } public String getName() { return "Cylinder"; } }

Java实例 (续) import javax.swing.JOptionPane; public class Show{ public static void main(String args[]){ Point point=new Point(7,11); Circle circle=new Circle(3.5,22,8); Cylinder cylinder=new Cylinder(10,3.3,10,10); Shape arrayofShapes[]=new Shape[3]; arrayofShapes[0]-point; arrayofShapes[1]=circle; arrayofShapes[2]=cylinder; String output=point.getName()+":"+point.tostring()+"\n"+ circle.getName ()+""+circle.tostring ()+"\n"+ cylinder.getName ()+""+cylinder.tostring () JOptionPane.showMessageDialog(null,output,"Demonstrating Polymorphism",JOptionPane.INFORMATION MESSAGE ) System.exit(0 )
Java实例——(续) import javax.swing.JOptionPane; public class Show{ public static void main(String args[]){ Point point=new Point(7,11); Circle circle=new Circle(3.5,22,8); Cylinder cylinder=new Cylinder(10,3.3,10,10); Shape arrayOfShapes[]=new Shape[3]; arrayOfShapes[0]=point; arrayOfShapes[1]=circle; arrayOfShapes[2]=cylinder; String output=point.getName()+":"+point.toString()+"\n"+ circle.getName()+":"+circle.toString()+"\n"+ cylinder.getName()+":"+cylinder.toString(); JOptionPane.showMessageDialog(null,output,"Demonstrating Polymorphism",JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); } }

二、接口 接口可以被用来实现类间多继承 结构。接口内部只能定义public的 抽象方法和静态的、公有常量,因 此所有的方法需要在子类中实现
二、接口 接口可以被用来实现类间多继承 结构。接口内部只能定义 public 的 抽象方法和静态的、公有常量,因 此所有的方法需要在子类中实现
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第4章 类的继承和多态.ppt
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第3章 面向对象的程序设计概念.ppt
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第2章 Java基础.ppt
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第11章 Swing组件.ppt
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第10章 数据库编程.ppt
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第8章 集合操作.ppt
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第1章 Java概述(负责人:尹菡).ppt
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)《Java程序设计》笔试卷B(答案).doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)《Java程序设计》笔试卷B(试题).doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)《Java程序设计》笔试卷A(答案).doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)《Java程序设计》笔试卷A(试题).doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)《Java程序设计》机考卷B(答案).doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)《Java程序设计》机考卷B(试题).doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)《Java程序设计》机考卷A(答案).doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)《Java程序设计》机考卷A(试题).doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)java上机题及答案3.doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)java上机题及答案2.doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)java上机题及答案1.doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)java练习题及答案3.doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程教学资源(试卷习题)java练习题及答案2.doc
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第6章 异常.ppt
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第7章 常用实用类.ppt
- 私立华联学院:《跨平台开发语言(JAVA)》课程电子教案(PPT教学课件)第9章 输入与输出.ppt
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)实训指导书(主讲:崔英敏).pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第一章 Linux的启源与发展历史(主讲:崔英敏).pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第二章 Linux的基础应用.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第三章 VIM文件编辑器.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第四章 Linux用户组及权限管理.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第五章 Linux文件系统.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第六章 Linux系统与网络管理.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第七章 定制SHELL环境.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第九章 进程管理与内核服务.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第八章 SHELL编程基础.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第十章 软件包管理与定制系统.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第十一章 虚拟化.pdf
- 私立华联学院:《Linux系统管理》课程教学资源(课件讲稿,打印版)第十二章 故障排除.pdf
- 私立华联学院:《3DS MAX三维动画设计》课程教学资源(教学大纲,主讲:赵伟明).pdf
- 私立华联学院:《3DS MAX三维动画设计》课程教学资源(课程标准).pdf
- 私立华联学院:《3DS MAX三维动画设计》课程教学资源(作业习题)课程作业(含答案).pdf
- 私立华联学院:《3DS MAX三维动画设计》课程教学资源(案例)nurbs制作花瓶.docx