|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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”,不然会报错。
|
评分
-
查看全部评分
|