博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java学习第八天
阅读量:4569 次
发布时间:2019-06-08

本文共 1180 字,大约阅读时间需要 3 分钟。

第九次课

目标

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 调试

目的: 理解程序的执行流程、排除错误。

 

转载于:https://www.cnblogs.com/yuyufeng/p/5322322.html

你可能感兴趣的文章
java no wait_即使队列在activemq中不为空,JMS实现中的receiveNoWait也返回null
查看>>
java定义player类_简易扑克牌游戏 定义了Constants、Main、Player、Poker四个类
查看>>
java方法重载例题_Java方法重载实现原理及代码实例
查看>>
java 字符串 包含 次数_用JAVA写查询一个字符串中是否包含另外一个字符串以及出现的次数...
查看>>
java jvm arg_java – Ant,jvmarg,系统属性和引号
查看>>
karp算法Java_Java – 具有Held和Karp算法的旅行推销员
查看>>
Session共享问题---理论
查看>>
Redis键的基本操作
查看>>
redis的安装---Linux
查看>>
Redis过期命令
查看>>
Redis键的序列化和反序列化
查看>>
PHP Math常量
查看>>
mybatis中条件查询大于等于和小于等于写法
查看>>
启动程序添加启动脚本
查看>>
CF1194E Count The Rectangles
查看>>
Gym100212C Order-Preserving Codes
查看>>
ARC076F Exhausted
查看>>
TC1570 DesertWind
查看>>
CF277D Google Code Jam
查看>>
(七)unittest单元测试框架
查看>>