Java语言程序设计实用教程第6章 接口与内部类.pptVIP

  • 1
  • 0
  • 约4.47千字
  • 约 34页
  • 2019-07-17 发布于辽宁
  • 举报

Java语言程序设计实用教程第6章 接口与内部类.ppt

SISE Java语言程序设计实用教程 Java语言程序设计实用教程 第6章 接口与内部类 * 本章学习要点: 理解抽象类与接口 理解内部类及其应用 利用接口提供Java中多重继承的性质 6.1 接口-抽象类 抽象类 用abstract 修饰的类被称为抽象类。所谓抽象类就是没有具体实例对象的类。 抽象类通常包括一个或多个抽象方法(只有方法说明,没有方法体),抽象类的子类必须完成父类定义的每一个抽象方法,除非该子类也是抽象类。 抽象类的主要用途是用来描述概念性的内容,这样可以提高开发效率,更好地统一用户“接口”。 定义一个抽象类 abstract class 类名称 { 成员变量; 方法(); //定义一般方法 abstract 方法(); //定义抽象方法 } 说明:抽象类中可以包含有一般方法,也可以包含有抽象方法;对于抽象方法不用完成其代码实现,而在派生的子类中实现所有抽象方法。 抽象类实现的例子 如前所述你可能对抽象类的概念有点模糊,下面举一个具体实例来作说明。 假设想设计一个形状(shape)的父类CShape,由此类可派生出圆形(circle),长方形(rectangle)于三角形(triangle)等几何形状的类。则父类于子类的派生关系描绘成如下图所示。 CShape类 CRectangle类 CCircle 类 CTriangle 类 假设这些几何形状均具有“颜色”(color)这个属性,因此可以把color这个数据成员,以及赋值color的方法均设计在父类里,让它继承给各个形状的子类较为方便,如此就不用在每一个几何形状的子类里,设计相同的程序代码来处理“颜色”这个属性的问题。 另外,如果想为每一个几何形状的类设计一个area() 方法,用来显示几何形状的面积,因每种几何形状的面积计算方式并不相同,所以把area() 方法的处理方式设计在父类里并不恰当,但每一个由CShape父类所派生出的子类又都需要用到这一个方法,因此可以在父类里只声明area() 方法,而把area() 方法处理的方法留在子类里来定义,也就是说,把area() 声明成抽象方法即可解决这个问题。根据上述的概念,可编写出如下的父类程序代码: 需求假设 abstract class CShape //定义抽象类 { protected String color; //数据成员 public void setColor(String str) { color=str; //一般的方法,用来赋值几何形状的颜色 } abstract void area();//抽象类内的抽象方法 } 定义抽象类 CShape class CCircle extends CShape CShape { double radius; //数据成员 public CCircle(double r) //构造函数 { radius=r; } public void area() { System.out.print(“Color=“+color+”,”); System.out.print(“area=“+3.14*radius*radius); } } 在此处明确定义 area()的处理方法 抽象类CShape派生的子类CCricle class CRectangle extends CShape { int width,height; public CRectangle (int w,int h) { width=w; height=h; } public void area() { System.out.print(“color=“+color+”, “); System.out.print(“area=“+width*height); } } 抽象类CShape派生的子类CRectangle Public class app10-1{ public static void main (String args[]){ CRetangle rect=new CRectangle(5,10); rect.setColor(“yellow”); rect.area(); CCircle cir=new CCircle(2.0) cir.setColor(“Green”); cir.area(); } } 应用 6.1 接

文档评论(0)

1亿VIP精品文档

相关文档