接口、继承与多态
1.继承和多态是面向对象开发语言中的重要一个环节,使用得当,可以将整个程序的架构变得非常有弹性,减少代码冗余;
2.继承:复用定义好的类;
3.多态:可以动态调整对象的调用,降低对象的依存关系;
4.接口:Java中类可以实现多个接口,被用来建立类与类之间的标准;

***接口***
1.接口的目的:
Java语言只支持单继承,即一个类只能有一个父类。
实际应用中,经常需要多继承解决问题,为解决该问题,提供接口实现类的多重继承;
2.接口定义:与类的定义类似,接口的声明和接口体;
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 变量;
[public] [abstract] 方法;
}
3.接口中的方法是没有方法体的;
4.接口的实现:
接口定义后就可以在类中实现该接口;用implements;
[修饰符] class <类名> [extends 父类名][implements 接口列表]{}
4.在类的继承中只能做单重继承,而实现接口时,一次可以实现多个接口,用逗号隔开;
这样可能会出现变量名或方法冲突的情况,需要明确指定变量的接口,“接口名.变量”实现;

5.接口(interface)是抽象方法和常量值的定义的集合;

6.从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有常量和方法的实现。

 import java.awt.Point;
/**
*
* @author: liu_y
* @Date: 2016年7月3日
* @Title:接口学习
*/
//定义接口
interface ICalculate {
final float PI=3.14f;
float getArea(float r); //接口中的方法是没有方法体的!!
float getCircleLong(float r); }
//接口的实现
class Cire implements ICalculate{
//定义计算圆的面积的方法
public float getArea(float r){
float area=PI*r*r;
return area;
}
//定义圆的周长的方法
public float getCircleLong(float r){
float circleLong=2*PI*r;
return circleLong;
}
} //范例一:图片的不同格式的保存
interface ImageSaver{
void save();
}
class GIFSaver implements ImageSaver{
@Override
public void save(){
System.out.println("将图片保存成GIF格式~");
}
} //为汽车增GPS定位功能
class Car{
private String name;
private int speed; public void setName(String name){
this.name=name;
}
public void setSpeed(int speed){
this.speed=speed;
}
public String getName(){
return this.name;
}
public int getSpeed(){
return this.speed;
}
@Override
public String toString(){
StringBuilder sb=new StringBuilder();
sb.append("车名:"+name+" ");
sb.append("车速:"+speed+"千米/小时");
return sb.toString();
} }
//定义GPS接口
interface GPS{
Point getLocation();
}
//定义GPSCar类,继承Car并实现接口GPS
class GPSCar extends Car implements GPS{
@Override
public Point getLocation(){
Point point=new Point();
point.setLocation(super.getSpeed(),super.getSpeed());
return point;
}
@Override
public String toString(){
StringBuilder sb=new StringBuilder();
sb.append(super.toString());
sb.append("\n坐标:"+getLocation().x+","+getLocation().y);
return sb.toString();
}
} public class Hello1Interface {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(" 接口、继承与多态\n");
//用接口实现求圆的面积与周长
System.out.println("用接口实现求圆的面积与周长");
Cire c=new Cire();
float clong=c.getCircleLong(5);
float area=c.getArea(5);
//对于精度缺失问题,以后可以参考类型BigDecimal
System.out.println("圆的周长是:"+clong+"\n○的面积是:"+area); //接口实现图片不同格式的保存;
System.out.println("\n接口实现图片不同格式的保存");
GIFSaver gif=new GIFSaver();
gif.save(); //继承类并且实现接口
System.out.println("\n定义GPSCar类,继承Car并实现接口GPS");
GPSCar gpscar=new GPSCar();
gpscar.setName("Benz");
gpscar.setSpeed(888);
Point pt=gpscar.getLocation();
String ss=gpscar.toString();
System.out.println(pt);
System.out.println(ss);
} }

输出结果:

  接口、继承与多态

 用接口实现求圆的面积与周长
圆的周长是:31.400002
○的面积是:78.5 接口实现图片不同格式的保存
将图片保存成GIF格式~ 定义GPSCar类,继承Car并实现接口GPS
java.awt.Point[x=888,y=888]
车名:Benz 车速:888千米/小时
坐标:888,888

最新文章

  1. Android sdk tool android 命令参数
  2. HDU1568
  3. 开发《基于Arcgis Online的家政管理服务信息系统》随笔1
  4. 修改win10打开文件资源管理器
  5. Android开发:彻底更改工程名
  6. 杭电oj A + B Again
  7. 挖一下插件v1.5版本发布
  8. AWK第一篇------全面介绍
  9. haproxy学习
  10. UITextView实现限制100字
  11. 网络爬虫框架Scrapy简介
  12. python之函数对象、函数嵌套、名称空间与作用域、装饰器
  13. 使用外网访问阿里云服务器ZooKeeper
  14. java基础学习之单例设计模式学习
  15. JS修改属性,六种数据类型
  16. lambda 2
  17. Python接通图灵机器人
  18. Scrum 冲刺博客第五篇
  19. 【LG2257】YY的GCD
  20. 各种软核处理器二进制文件FPGA初始化文件生成程序

热门文章

  1. 理解jquery的.on()方法
  2. 关于qq创始人----马化腾的一些琐事
  3. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值。
  4. 一个poi操作实现导出功能的类
  5. 这样就算会了PHP么?-5
  6. 对拍 For Linux
  7. 面试题 43 n 个骰子的点数
  8. 基本SQL练习题--选课经典例题
  9. Android ExpandableListActivity的简单介绍及小例子
  10. FTP 上传文件