1.接口

  1. package com.yfs.javase;
  2.  
  3. public interface IDemo1 {//interface 接口
  4.  
  5. public /*abstract*/ void method1();//默认抽象方法 public
  6.  
  7. }
  8.  
  9. class Child1 implements IDemo1 {
  10.  
  11. @Override
  12. public void method1() {
  13. // 实现接口的方法
  14. System.out.println("call method1()");
  15. }
  16.  
  17. }

2.接口示例1

  1. package com.yfs.javase;
  2.  
  3. public interface IFly {
  4.  
  5. public void fly();
  6.  
  7. }

3.实现接口

  1. package com.yfs.javase;
  2.  
  3. public class Bird implements IFly {
  4.  
  5. @Override
  6. public void fly() {
  7. System.out.println("鸟在飞....");
  8.  
  9. }
  10.  
  11. }
  12. class Wuya extends Bird {
  13. @Override
  14. public void fly() {
  15. System.out.println("乌鸦在飞....");
  16.  
  17. }
  18. }
  19.  
  20. class Butterfly implements IFly {
  21.  
  22. @Override
  23. public void fly() {
  24. System.out.println("蝴蝶在飞....");
  25.  
  26. }
  27.  
  28. }

4.IRun接口

  1. package com.yfs.javase;
  2.  
  3. public interface IRun {
  4. int a = 10;//默认public static final
  5. public void run();
  6.  
  7. }
  8. /*public*/ interface ISwim {
  9.  
  10. }
  11. class Horse implements IRun {
  12.  
  13. @Override
  14. public void run() {
  15.  
  16. System.out.println("马在跑..." + a);
  17.  
  18. }
  19.  
  20. }

5.接口多继承

  1. package com.yfs.javase;
  2. //接口可以多继承
  3. public interface ITest extends IFly, IRun, ISwim {
  4.  
  5. }

6.Person

  1. package com.yfs.javase;
  2.  
  3. public class Person {
  4.  
  5. private String name;
  6. private int age;
  7. private char sex;
  8.  
  9. public Person() {
  10.  
  11. }
  12.  
  13. public Person(String name) {
  14. this.name = name;
  15. }
  16.  
  17. public Person(String name, int age, char sex) {
  18. this.name = name;
  19. this.age = age;
  20. this.sex = sex;
  21. }
  22.  
  23. public void introduce() {
  24. System.out.println("I am Person....");
  25. }
  26.  
  27. public String toString() {
  28. return "姓名:" + name + " 年龄 :" + age + " 性别:" + sex;
  29. }
  30.  
  31. public void speak() {
  32. System.out.println(name + " 工作了吗?");
  33. }
  34.  
  35. public void sleep() {
  36. System.out.println(name + " 睡觉了吗?");
  37. }
  38.  
  39. public void eat() {
  40. System.out.println(name + " 吃了吗?");
  41. }
  42.  
  43. public String getName() {
  44. return name;
  45. }
  46.  
  47. public void setName(String name) {
  48. this.name = name;
  49. }
  50.  
  51. public int getAge() {
  52. return age;
  53. }
  54.  
  55. public void setAge(int age) {
  56. this.age = age;
  57. }
  58.  
  59. public char getSex() {
  60. return sex;
  61. }
  62.  
  63. public void setSex(char sex) {
  64. this.sex = sex;
  65. }
  66.  
  67. }

7.超人 继承 人,实现 IRun,IFly 接口

  1. package com.yfs.javase;
  2.  
  3. public class SuperMan extends Person implements IRun, IFly {
  4.  
  5. @Override
  6. public void run() {
  7. System.out.println("超人在跑....");
  8.  
  9. }
  10.  
  11. @Override
  12. public void fly() {
  13. System.out.println("超人在飞...");
  14.  
  15. }
  16.  
  17. }

8.接口 测试

  1. package com.yfs.javase;
  2.  
  3. public class Test1 {
  4.  
  5. public static void main(String[] args) {
  6. IFly f1 = null;
  7. // new IFly();//接口不能实例化
  8. f1 = new Bird();
  9. f1.fly();
  10. f1 = new Butterfly();
  11. f1.fly();
  12.  
  13. callMethod(new Wuya());
  14.  
  15. IRun r1 = new Horse();
  16. r1.run();
  17.  
  18. callMethod(new SuperMan());
  19. }
  20.  
  21. public static void callMethod(IFly f) {
  22. f.fly();
  23. }
  24.  
  25. }

9.测试2

  1. package com.yfs.javase;
  2.  
  3. public class Test2 {
  4.  
  5. public static void main(String[] args) {
  6. SuperMan s1 = new SuperMan();
  7. s1.setName("Tom");
  8. s1.speak();
  9. s1.run();
  10.  
  11. callMethod(new Horse());
  12. callMethod(s1);
  13. }
  14.  
  15. public static void callMethod(IRun r) {
  16. r.run();
  17. }
  18. }

java新手笔记21 接口的更多相关文章

  1. java新手笔记22 接口示例2

    1.USB package com.yfs.javase; public interface USB { //定义规范 public void read(); public void write(); ...

  2. JAVA自学笔记21

    JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...

  3. Java 学习笔记(7)——接口与多态

    上一篇说了Java面向对象中的继承关系,在继承中说到:调用对象中的成员变量时,根据引用类型来决定调用谁,而调用成员方法时由于多态的存在,具体调用谁的方法需要根据new出来的对象决定,这篇主要描述的是J ...

  4. Java学习笔记之接口

    一.接口的概念与定义 首先考虑一个简单的接口的定义: public interface Output { int MAX_LINE = 40; void out(); void getData(Str ...

  5. Java学习笔记 07 接口、继承与多态

    一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...

  6. java新手笔记32 jdk5新特性

    1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...

  7. java新手笔记31 集合实现类

    Person类: package com.yfs.javase; import java.util.Date; public class Person implements Comparable { ...

  8. java新手笔记27 监听器类

    1.外部类监听 package com.yfs.javase; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...

  9. java新手笔记20 抽象类模板(letter)

    1.抽象类 package com.yfs.javase; //信模板 public abstract class Templater { public abstract String toName( ...

随机推荐

  1. window上使用GIT的个人经验(入门级)

    0.安装 使用google上的msysgit http://code.google.com/p/msysgit/downloads/list 尽量用最新版的吧 1.KEY 关于 key,.ssh里面的 ...

  2. Html笔记(五)表格

    表格标签: <table> 组成: 标题标签: <caption>给表格提供标题. 表头标签: <th> ,一般对表格的第一行或者第一列进行格式化,就是粗体显示,并 ...

  3. 一个free的问题

    请看下面的代码: #include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sy ...

  4. 学习Windows Azure 视频集合大全

    Windows Azure 入门系列课程视频Windows Azure 入门系列课程(1):Windows Azure 概述http://www.aboutyun.com/thread-5777-1- ...

  5. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

  6. Find longest contiguous sub array

    It's still an Amazon interview question. Given an array containing only stars '*' and hashes '#' . F ...

  7. json里的日期字符串 怎么 转换成 javascript 的 Date 对象?

    “/Date(1232035200000)/” 怎么转换成  javascript 的 Date 对象 做法:new Date(+/\d+/.exec(value)[1]); value就是json字 ...

  8. android图片闪烁或帧动画

    remote_recording_transition.xml 文件 <?xml version="1.0" encoding="utf-8"?> ...

  9. SVN eclipse插件错误

    部分文章转载自:http://www.bkjia.com/ASPjc/1015687.html 出现如下问题该怎么做: 1.在Windows--Preferences--Team--SVN--接口换成 ...

  10. 以管理员身份启动ClickOnce部署的应用程序

    ClickOnce方式部署应用简单方便,估计很多人都用过,但这种方式存在一定的“缺陷”,即以管理员方式启动应用的问题,虽然出于安全考虑可以理解,但给需要管理员权限才能正常运行的程序带来了一定的麻烦,这 ...