|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 马太效应 于 2017-7-27 23:10 编辑
今天是第23天,珍惜时光善待生活 : )
①以下程序代码定义了Swimmer接口。
在这里Swimmer中的swim()方法没有操作,只是标示为abstract,且一定是public修饰。其实public abstract也可省略。<公开且抽象>
(在JDK8出现前,Java的接口只能定义抽象方法而不能实现它。在JDK8之后,接口可以有条件地去实现其抽象方法。)
public interface Swimmer {
public abstract void swim();
}
②以下程序代码使用implements关键字来执行接口,再度将重写的方法定义为abstract。
(当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。)
public abstract class Fish implements Swimmer {
protected String name;
public Fish(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public abstract void swim();
}
③接口与类的区别
1.接口不能实例化 <instantiate 例示>
2.接口没有构造方法 <Interfaces cannot have constructors>
3.接口中所有的方法必须是抽象方法。
<only public, abstract, default, static and strictfp are permitted
strictfp 严格 精准>
4.接口不是被类继承了,而是要被类实现。
<一个类只能继承一个抽象类,而一个类却可以实现多个接口。>
5.接口支持多重继承。
<在Java中,接口可以继承另一个接口,也就是继承父接口的行为,再在子接口中额外定义行为。>
public class Submarine implements Swimmer{
protected String name;
public static void main(String[] args) {
Submarine s=new Submarine("-小能手-");
s.swim();
}
public Submarine(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public void swim() {
// TODO Auto-generated method stub
System.out.printf ("潜水艇%s潜行%n",name);
}
}
结果是—— 潜水艇-小能手-潜行
④解决需求变化
如果增加新的需求,原有的程序无需修改,只需针对新需求撰写程序,那就是有弹性、具有可维护性的程序。
public interface Flyer {
public abstract void fly();
}
还有会游又会飞的<。)#)))≦<div>public class FlyingFish extends Fish implements Flyer {
public FlyingFish(String name) {
super(name);
// TODO Auto-generated constructor stub
}
@Override
public void fly() {
// TODO Auto-generated method stub</div><div>System.out.println("我是一只会飞的<。)#)))≦");
}
@Override
public void swim() {
// TODO Auto-generated method stub
System.out.println("我是一只爱水的<。)#)))≦");
}
}
</div>
在Java中,类可以同时继承某个类,并操作某些接口。public class Ocean {
public static void main(String[] args) {
doSwim(new FlyingFish("哆啦阿盟"));
}
static void doSwim(Swimmer swimmer) {
swimmer.swim();
}
}
⑤接口语法细节
public interface Action {
public static final int STOP=0;
public static final int RIGHT=1;
public static final int LEFT=2;
public static final int UP=3;
public static final int DOWN=4;
}
以上接口中的这类常数,称为枚举常数。
(其中public static final 可省略)
提示:java中小数默认是double类型,所以如果写float必须在小数后加“f”,不然会报错。
|
评分
-
查看全部评分
|