- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《java语言程序设计》第五章
第5章 接口与多态;目录;5.1 接口;接口的语法
声明格式为
interface 接口名称 {
…//属性常量
…//抽象方法
};声明一个接口Shape2D,实现类为Circle和Rectangle
把计算面积的方法声明在接口里
pi值是常量,把它声明在接口的数据成员里
interface Shape2D{ //声明Shape2D接口
final double pi=3.14; //数据成员一定要初始化
public abstract double area(); //抽象方法
}
在接口的声明中,允许省略一些关键字,也可声明如下(,省略抽象)
interface Shape2D{
double pi=3.14; //省略常量的final修饰
double area(); //省略抽象方法的public abstract修饰
};5.1.2 实现接口;5.1.2 实现接口 ——例5_4;测试类
public class InterfaceTester {
public static void main(String args[]){
Rectangle rect=new Rectangle(5,6);
System.out.println(Area of rect = + rect.area());
Circle cir=new Circle(2.0);
System.out.println(Area of cir = + cir.area());
}
}
运行结果
Area of rect = 30.0
Area of cir = 12.56;声明接口类型的变量,并用它来访问对象
public class VariableTester {
public static void main(String []args)
{
Shape2D var1,var2;
var1=new Rectangle(5,6); //矩形对象自动转化为接口对象
System.out.println(Area of var1 = + var1.area());
var2=new Circle(2.0); //圆对象自动转化为接口对象
System.out.println(Area of var2 = + var2.area());
}
}
输出结果
Area of var1 = 30.0
Area of var2 = 12.56
;5.1.3 接口的作用;保险公司的例子(不相关类)
具有车辆保险、人员保险、公司保险等多种保险业务,在对外提供服务方面具有相似性,如都需要计算保险费(premium)等,因此可声明一个Insurable 接口
在UML图中,实现接口用带有空三角形的虚线表示;5.1.3 接口的作用--多重继承;声明Circle类实现接口Shape2D和Color
Shape2D具有pi与area()方法,用来计算面积
Color则具有setColor方法,可用来赋值颜色
通过实现这两个接口,Circle类得以同时拥有这两个接口的成员,达到了多重继承的目的
interface Shape2D{ //声明Shape2D接口
final double pi=3.14; //数据成员一定要初始化
public abstract double area(); //抽象方法
}
interface Color{
void setColor(String str); //抽象方法
}
;class Circle implements Shape2D,Color // 实现Circle类
{
double radius;
String color;
public Circle(double r) //构造方法
{
radius=r;
}
public double area() //定义area()的处理方式
{
return (pi*radius*radius);
}
public void setColor(String str) //定义setColor()的处理方式
{
color=str;
System.out.println(color=+color);
}
};测试类
文档评论(0)