鱼C论坛

 找回密码
 立即注册
查看: 2791|回复: 0

[学习笔记] Java暑期学习Day23

[复制链接]
发表于 2017-7-27 23:10:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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”,不然会报错。







评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 01:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表