java学习第八天
第九次课
目标
1、 多态
2、 抽象类
3、 接口
4、 内部类(了解)
一、多态polymorphism
追求”高内聚低耦合”通过三大特性: 封装继承及多态来实现。
多态:多种形态,”出去买水果?” ,多态发生在运行期的行为,编译看父类型,运行找子对象。
1、条件
1)、继承 2)、重写(没有重写,延续方法) 3)、父类的引用=子类的对象
2、新增方法
发生多态时,对新增方法不可见。
强制类型转换成功,可以使用新增方法
3、两种表现形式
1)、形参使用父类型
2)、返回类型使用父类型
4、类型转换
1)、自动|向上(upcasting)|多态
父类 =子类对象
2)、强制|向下(downcasting)
子类 = (子类)父类指向的对象
注意: 正确的发生多态才能够转换成功,否则错误
instanceof à关系运算符,检查引用所指向的对象(右边)的类型,是否本类型|父类型,必须在继承链上。
常见的错误: 转换错误java.lang.ClassCastException
二、抽象类
由abstract修饰的类,称为抽象类,此抽象类不能实例化,待子类实例(多态),通常用作工具类、模板(不变+可变),称为部分规范。
1、定义格式
public abstract class Xxx{
}
2、特点
1)、abstract 修饰 ,不能使用final 修饰,因为必须存在子类
2)、不能实例化,待子类实例化;存在构造器
3)、可能存在抽象方法,抽象类可以没有抽象方法
3、抽象方法
由abstract修饰的没有方法体({})的方法,注意; 结束。
1)、抽象类可以没有抽象方法
2)、抽象方法一定存在于抽象类中
三、接口
接口 interface ,完全规范、标准 ,like 如: USB接口,具有连接电脑、传输数据等功能。接口只有全局常量和公共的抽象方法,看成特殊的抽象类。
1、格式
[public] /*abstract*/ interface 接口名{
//全局常量
/* public static final*/ 类型常量名=赋值;
//公共的抽象方法
public abstract 返回值类型|void 方法名([形参列表]);
}
2、类与接口
Implements 多实现接口
3、接口与接口:
多继承 (了解)
4、空接口
给jvm 通行证
1)、java.lang.Cloneable
2)、java.io.Serializable
四、内部类(了解)
内部类: 类变成了类中类、方法中的类
1、类中类
实例化:
2、方法中类
3、匿名内部类(重点)
五、eclipse 调试
目的: 理解程序的执行流程、排除错误。
java学习第八天的更多相关文章
- 学习java的第八天
一.今日收获 1.学习完全学习手册上2.3转义字符与2.4运算符两节 二.今日难题 1.没有什么难理解的问题 三.明日目标 1.哔哩哔哩教学视频 2.Java学习手册
- 九、Android学习第八天——广播机制与WIFI网络操作(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 九.Android学习第八天——广播机制与WIFI网络操作 今天熟悉了An ...
- JAVA学习前十天:小结、面向对象之”扑克牌“例子
2016年4月26号正式步入JAVA学习课堂,学习了第一节JAVA课程,由于以前有C语言基础,所以课程有点快! 第一天:学习了教材的第一部分,第一部分总共两章,分别是JAVA简介和JAVA基础语法. ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- 分享篇——我的Java学习路线
虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- Java学习心得之 HttpClient的GET和POST请求
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 HttpClient的GET和POST请求 1. 前言2. GET请求3 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
随机推荐
- js-分享107个js中的非常实用的小技巧(借鉴保存)
转载原文:http://***/Show.aspx?id=285 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:doc ...
- syslog简介——系统日志写入API
一.简介 syslog是Linux系统默认的日志守护进程.默认的主配置文件和辅助配置文件分别是/etc/syslog.conf和/etc/sysconfig/syslog文件.通常,syslog 接受 ...
- 谈谈CSS的布局,display、position、float
前言 前端一直是我的一个很大的缺憾,这段时间痛顶思痛,决定好好的把前台的东西加强,这不,在学习了一段时间js之后,在做一些小练习,却发现最基本的一些css知识却还不了解,所以便有了这篇博文. 块级元素 ...
- ViewPager滑动页面的实现方法
package com.lixu.pagerview; import java.util.ArrayList; import android.app.Activity; import android. ...
- Asp.Net MVC3.0网站统计登录认证的在线人数
Asp.Net MVC3.0网站统计登录认证的在线人数 前言 对于一个网站来说,统计在线人数是一个很重要的工作.平时也发现很多的网站论坛等都有在线人数的显示.对于一个网站如果在线人数很多,用户看到了这 ...
- JQuery 来获取数据c#中的JSON数据
C# 后台 (JSONHandler.ashx) <%@ WebHandler Language="C#" Class="JSONHandler" %&g ...
- java调用c++生成的动态和静态库时遇到的问题
java.lang.UnsatisfiedLinkError: no jacob in java.library.path -Djava.library.path 关于java用jni调用 dll动态 ...
- HDU 5442 后缀自动机+kmp
题目大意: 给定一个字符串,可理解成环,然后选定一位置,逆时针或顺时针走一遍,希望得到字典序最大,如果同样大,希望找到起始位置最小的,如果还相同,就默认顺时针 比赛一直因为处理最小位置出错,一结束就想 ...
- [转]理解WSRF之一 使用WS-ResourceProperties (整理自IBM网站)
理解 WSRF第1部分-使用 WS-ResourceProperties 本 教程是一个由 4 部分组成的系列文章中的第 1 部分,该系列介绍 WSRF(Web Services Resource ...
- Gmail新版截图曝光 你还能认得出来吗?
Gmail即将迎来巨大的改变.据外媒消息,目前Google正在测试新的网页版Gmail.要知道从Gmail推出以来还从未进行过如此大的改动. 新版Gmail中,界面相比之前,采用了更加扁平话的设计,整 ...