接口应用
 
多态
 猫 x = new 猫();
 动物 x = new 猫();
 
 父类或接口的引用指向其子类的对象

 class BookPC{
public static void main(String[] args){
useUSB(new UPan());
}
public static void useUSB(USB u){
u.open();
u.close();
}
} class Mouse{ } interface USB{
public void open();
public void close();
} class UPan implements USB{
public void open(){
System.out.println("UPan open");
}
public void close(){
System.out.println("UPan close");
}
}

好处 提高代码复用性

弊端
 前期定义的内容不能使用后期子类特有的内容
 
 多态的前提:
 1、必须有关系,继承、实现
 2、要有覆盖
 
多态--转型
 动物 x = new 猫();//自动类型提升,特有的功能无法访问;向上转型
 猫 c = (猫)x;//向下转型
 
多态--类型判断 instanceof
 用于向下转型前的判断
 
多态--成员特点 编译看等号左边
 1、成员变量
  父类有就获取,无则编译失败
 2、成员函数
  子类有就覆盖,无则获取父类的
 3、静态函数
  静态不存在覆盖,也就不涉及多态;对象才有多态,静态方法属于类
 
内部类--应用于设计
 1、内部类可以直接访问外部类中的成员 包括私有的
 2、外部类访问内部类,则需要建立内部类对象
 
 编译后,查看class文件
 
内部类--修饰符
 Outer.Inner in = new Outer().new Inner();
 Static Outer.Inner in = new Outer.Inner();
 当内部类成员有static修饰,则内部类也要加static
 
细节
 Outer.this.num
 为什么内部类能直接访问外部类中的成员呢?
 因为内部类持有外部类的引用 外部类名.this
 
局部内部类--方法中
 内部类访问局部变量,局部变量需要被声明为final

匿名内部类
 内部类必须继承或实现一个外部类或接口
 其实就是一个匿名子类对象
 new 父类 or 接口 (){ 子类内容 }
 
应用
 当函数参数是接口类型时,且接口中的方法不超过3个,可以用匿名内部类作为实际参数进行传递。
 
细节
 主函数直接new Inner//为什么
 匿名内部类如果使用父类进行显示赋予引用变量,那么再用变量去调用子类方法则编译失败。
 
带继承的子类对象初始化
 1、成员变量默认初始化
 2、调用子类构造器
 3、调用父类构造器
 4、成员变量显示初始化
 5、构造代码块初始化
 6、构造函数具体初始化

Java Day 10的更多相关文章

  1. JAXB在Java 9/10并且使用Tomcat 9的问题

    Implementation of JAXB-API has not been found on module path or classpath. JAXB API是java EE 的API,jav ...

  2. Eclipse调试Java的10个技巧【转】

    clipse调试Java的10个技巧 先提三点 不要使用System.out.println作为调试工具 启用所有组件的详细的日志记录级别 使用一个日志分析器来阅读日志 1.条件断点 想象一下我们平时 ...

  3. Java复习10.Servlet编程

    Java复习10. Servlet编程知识 20131008 前言: 之前在大三下的时候,学习了一个月的JSP和Servlet知识,但是没有什么项目经验,把JSP Web开发学习实录看了前面几张,后面 ...

  4. 几周内搞定Java的10个方法

    不要将Java与JavaScript弄混了,Java的目标是“一次编译,到处调试”(呃,不对,是“到处运行”).简单来说,就是Java程序可以直接在任何设备上运行. Java语言是什么? 不管我们是否 ...

  5. Java习题10.24

    Java习题10.24 1. 1,3.connect()与accept():这两个系统调用用于完成一个完整相关的建立,其中connect()用于建立连接.accept()用于使服务器等待来自某客户进程 ...

  6. Java习题10.25

    Java习题10.25 1. 实际上这道题考查的是两同两小一大原则: 方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类 ...

  7. 030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符

    030 01 Android 零基础入门 01 Java基础语法 03 Java运算符 10 条件运算符 本文知识点:Java中的条件运算符 条件运算符是Java当中唯一一个三目运算符 什么是三目运算 ...

  8. Java SE 10 新增特性

    Java SE 10 新增特性 作者:Grey 原文地址:Java SE 10 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...

  9. Java SE 10 Application Class-Data Sharing 示例

    Java SE 10 Application Class-Data Sharing 示例 作者:Grey 原文地址:Java SE 10 Application Class-Data Sharing ...

  10. java 14 -10 Calendar类以及练习

    Calendar:它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法, 并为操作日历字段(例如获得下星期的日期)提供了一些方法. 1 ...

随机推荐

  1. 【MySQL】mysql buffer pool结构分析

    转自:http://blog.csdn.net/wyzxg/article/details/7700394 MySQL官网配置说明地址:http://dev.mysql.com/doc/refman/ ...

  2. 七、TCP/IP协议

    1.定义: TCP/IP模型也被称作DoD模型(Department of Defense Model).TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议). TCP/IP协议 ...

  3. poj3692_Kindergarten

    这题目大意是:男孩互相认识,女孩互相认识,一部分男女之间认识,老师要选一部分人,要求这部分人必须都相互认识. 这是一个二部图,先求出补图,在补图中G‘左右两点有连线说明在G中两者不认识,反之成立. 所 ...

  4. 网络流量监控shell脚本

    网络收发包计数记录在 /proc/net/dev 文件中, 要取得流量, 只需要读取里面的内容两次, 然后相减, 再除以时间间隔即可. #!/bin/bash #Usage1,record in fi ...

  5. 双人对战的球类游戏IOS源码

    双人对战的球类游戏源码,这个是一款双人对战的ios球类游戏源码,游戏的源码也比较详细的,我们在屏幕上下看到各有一个球门,内有一球,两边通过控制轮盘使球进入对方的球门的,其实玩法也很简单的,我们知道体育 ...

  6. nginx url重写 rewrite实例

    本文介绍下,在nginx中实现Url重写,学习rewrite的具体用法,有需要的朋友参考下吧. 原文地址:http://www.360doc.com/content/14/0202/20/142341 ...

  7. 最新CSS3常用30种选择器总结(适合初学者)

     1. *:通用元素选择器 * { margin: 0; padding: 0; } *选择器是选择页面上的全部元素,上面的代码作用是把全部元素的margin和padding设为0,最基本的清除默认C ...

  8. POJ C++程序设计 编程题#1 大整数的加减乘除

    编程题#4:大整数的加减乘除 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 ...

  9. 【转】IE11的变化

    1.navigator.userAgent中不再包含“MSIE”关键字 2.用javascript的判断是否是IE11的方法是: var isIE11 = (sUserAgent.toLowerCas ...

  10. delphi 资源文件详解

    delphi资源文件详解 一.引子: 现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便 ...