首先,(1)叙述接口的成员特点:

  1. /*
  2. 接口成员特点
  3. 成员变量;只能是常量,默认都是常量,并且是静态的。
  4. 默认修饰符:public static final
  5. 建议:自己手动给出类似:public static final int num3 = 30;的格式
  6. 构造方法:接口没有构造方法。
  7. 成员方法:默认只能是抽象方法。
  8. 默认修饰符:public abstract
  9. 建议:自己手动给出。
  10.  
  11. 用几行代码验证上述特点。
  12. */
  13. interface Inter {
  14. public int num = 10;
  15. public final int num2 = 20;
  16. public static final int num3 = 30;//(默认)的,但是建议自己自动给出所有修饰
  17.  
  18. //错误: 需要<标识符>,说明接口没有构造方法。
  19. //public Inter() {}
  20.  
  21. //接口方法不能带有主体{},因为接口方法是没有内容的,说明只能是抽象方法。
  22. //public void show() {}
  23.  
  24. //abstract void show(); //默认public,权限最大,因此在子类方法重写的时候访问权限不能更低,父类public子类更应该public建议字符类的权限修饰符都一样
  25. public void show(); //默认abstract,建议都写成:public abstract void show();
  26. }
  27.  
  28. /*
  29. class InterImpl implements Inter {
  30. public InterImpl() {
  31. super();
  32. }
  33. }
  34. */
  35.  
  36. class InterImpl extends Object implements Inter {//类实现接口。class 类名 implements接口名{}
  37. public InterImpl() {//子类默认继承于object中的无参构造方法
  38. super();
  39. }
  40.  
  41. public void show() {}
  42. }
  43.  
  44. //测试类
  45. class InterfaceDemo2 {
  46. public static void main(String[] args) {
  47. //创建对象
  48. Inter i = new InterImpl();//多态的方式,
  49. System.out.println(i.num);
  50. System.out.println(i.num2);
  51. System.out.println(i.num3);
  52. //i.num = 100;
  53. //i.num2 = 200;
  54. //System.out.println(i.num); //无法为最终变量num分配值
  55. //System.out.println(i.num2);//无法为最终变量num2分配值,验证了final修饰
  56. System.out.println(Inter.num);
  57. System.out.println(Inter.num2);//接口名称调用成员,说明有static修饰
  58. System.out.println(Inter.num3);
  59. System.out.println("--------------");
  60. }
  61. }

(2)、抽象和接口比较:

  1. 抽象类和接口的区别:
  2. A:成员区别
  3. 抽象类:
  4. 成员变量:可以变量,也可以常量
  5. 构造方法:有
  6. 成员方法:可以抽象,也可以非抽象
  7. 接口:
  8. 成员变量:只可以常量而且是静态
  9. 构造方法:无
  10.   成员方法:只可以抽象
  11.  
  12. B:关系区别
  13. 类与类
  14. 继承,单继承
  15. 类与接口
  16. 实现,单实现,多实现
  17. 接口与接口
  18. 继承,单继承,多继承
  19.  
  20. C:设计理念区别
  21. 抽象类 被继承体现的是:”is a”的关系。抽象类中定义的是该继承体系的共性功能。向上抽取
  22. 接口 被实现体现的是:”like a”的关系。接口中定义的是该继承体系的扩展功能。属于特性的东西

《java入门第一季》之面向对象接口面试题的更多相关文章

  1. JAVA入门第一季(mooc-笔记)

    笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...

  2. Java入门第一季——从此投身Java??

    找工作告一段落. 最后的工作呢,和java紧密相关,也是阴差阳错,不过都是软件开发,都好了,不过以后侧重点肯定是在java这边,php有机会还是一直学下去的,那么美的说~ Java开发第一季  一.简 ...

  3. 《java入门第一季》之面向对象(谈谈接口)

    软件中有接口,这里的接口与硬件中的接口还是有很大区别的. 这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!) 还是直接进入接口的 ...

  4. 《java入门第一季》之面向对象(内部类到底在哪里?)

    /* 内部类概述: 把类定义在其他类的内部,这个类就被称为内部类. 举例:在类A中定义了一个类B,类B就是内部类. 内部的访问特点: A:内部类可以直接访问外部类的成员,包括私有. B:外部类要访问内 ...

  5. Java入门第一季

    慕课网:http://www.imooc.com/learn/85 Java入门知识第一季 1.Java开发环境和IDE的使用: 2.变量和常量 3.常用的运算符 4.流程控制语句 5.数组:使用Ar ...

  6. 《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)

    根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: ...

  7. 《java入门第一季》之面向对象(接口收尾)

    通过案例的形式,结束接口部分. /* 猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭,睡觉 狗: 姓名,年龄 吃饭,睡觉 由于有共性功能,所以,我们抽取出一个父类: 动物: ...

  8. 《java入门第一季》之面向对象静态内部类和非静态内部类的区别

    很感谢在内部类章节,"开心阳"先生给与的建议.使用静态内部类.这里就简单说一下静态内部类的使用. package com.devin; public class MyMain{ p ...

  9. 《java入门第一季》之面向对象(包概述)

    由于eclipse等ide的强大功能,使得建包,导包用一些快捷键就能完成.这里对包的概念做稍微的叙述,了解即可: 分包后使得项目更加清晰,提高代码维护性. 包:         A:其实就是文件夹   ...

随机推荐

  1. CRM客户关系管理系统(七)

    第七章.动态modelform功能实现  7.1.动态modelform的实现 (1)给第一列添加一个a标签 kingadmintag.py (2)kingadmin/urls.py urlpatte ...

  2. 《读书报告 -- Elasticsearch入门 》-- 安装以及简单使用(1)

    <读书报告 – Elasticsearch入门 > 第一章 Elasticsearch入门 Elasticsearch是一个实时的分布式搜索和分析引擎,使得人们可以在一定规模上和一定速度上 ...

  3. TCP发送源码学习(1)--tcp_sendmsg

    一.tcp_sendmsg()函数分析: int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, size_t ...

  4. Mac上如何完美的转换epub至mobi供kindle观看

    网上有很多书籍资源的格式都是epub(我们不谈及pdf格式了,你懂得-),epub格式是无法直接在kindle上观赏的,除非你越狱kinde后,安装扩展插件 我们可以将epub转换为mobi格式,网上 ...

  5. TextView的升级版———AutoCompleteTextView

    TextView的升级版---AutoCompleteTextView AutoCompleteTextView顾名知义,可以自动提示的TextView,还可以提示错误信息. 这里介绍基本的使用,能够 ...

  6. hbase操作(shell 命令,如建表,清空表,增删改查)以及 hbase表存储结构和原理

    两篇讲的不错文章 http://www.cnblogs.com/nexiyi/p/hbase_shell.html http://blog.csdn.net/u010967382/article/de ...

  7. 【Unity Shaders】Alpha Test和Alpha Blending

    写在前面 关于alpha的问题一直是个比较容易摸不清头脑的事情,尤其是涉及到半透明问题的时候,总是不知道为什么A就遮挡了B,而B明明在A前面.这篇文章就总结一下我现在的认识~ Alpha Test和A ...

  8. 【Unity Shader实战】卡通风格的Shader(二)

    写在前面 本系列其他文章: 卡通风格的Shader(一) 好久没写博客了,一定是因为课程作业比较多,一定不是因为我懒,恩恩. 三个月以前,在一篇讲卡通风格的Shader的最后,我们说到在Surface ...

  9. android6.0SDK 删除HttpClient的相关类的解决方法

    本文转载自博客:http://blog.csdn.net/yangqingqo/article/details/48214865 android6.0SDK中删除HttpClient的相关类的解决方法 ...

  10. UNIX网络编程——使用select函数编写客户端和服务器

    首先看原先<UNIX网络编程--并发服务器(TCP)>的代码,服务器代码serv.c: #include<stdio.h> #include<sys/types.h> ...