Java SE基础知识点总结(五)
2016-07-13 14:35
483 查看
多态:
概念:一种状态的多种表现形式主要体现:编译时才动态确定相关的元素,父类或接口定义的引用可以指向子类或具体实现类的实例对象,程序调用的方法再运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也是内存里正在运行的对象的方法,而不是引用变量的类型中定义的方法。
父类的引用指向子类对象,这个引用变量只能访问父类里的成员以及被子类重写的方法,不能调用子类特有的成员——向上转型
指向子类的对象的父类引用强转为子类引用,可以调用子类成员——向下转型
向下转型的前提是向上转型
“对象引用 instanceof 类名或接口名”判断类型,返回值为boolean,后者能引用前者子类对象引用则返回true否则false(前者与后者具有继承或实现关系),前者为null则全部返回false。
回调:后写的代码触发先写的代码调用先写的代码。方法的重写都是回调。
内部类:
又称寄生类,都可以实现继承和接口。①成员内部类②静态内部类③局部内部类④匿名内部类
①也就是当成一个类的成员存在,成员内部类中不能有静态变量和静态方法
1、在外部类的非静态方法中访问成员内部类的成员:new 内部类()
2、在外部类的静态方法中访问内部类的成员:new 外部类().new 内部类()
3、在第三方类中,无论是静态方法还是非静态方法,都需要:new 外部类().new 内部类()
内部类成员如果被private修饰则无法被调用。
4、在内部类的方法中访问外部类的非静态成员:new 外部类()或外部类名.this
5、在内部类的方法中访问外部类的静态成员:“外部类名.
”来访问静态成员
②就是在成员内部类的前面加上static修饰。静态内部类中可以由静态变量和静态方法。
1、在外部类的方法中访问静态内部类的非静态成员:new 内部类()
2、在外部类的方法中访问静态内部类的静态成员:外部类名.内部类名.静态成员(静态内部类中的)
3、在内部类的方法中访问外部类的非静态成员:new 外部类()
4、在内部类的方法中访问外部类的静态成员:外部类名.静态成员(外部类中的)
5、在第三方类中访问静态内部类的非静态成员:new 外部类名.内部类名()
6、在第三方类中访问静态内部类的静态成员:外部类名.内部类类名.静态成员(内部类中的)
③就是在方法内部定义的内部类。只在定义它的方法内部有效。不能有static修饰的成员。
1、局部内部类可以访问外部类的非静态成员:外部类名.this.非静态成员(外部类)
2、局部内部类可以访问外部类的静态成员:外部类名.静态成员(外部类)
3、局部内部类可以访问它所在方法内部的局部变量,但这个变量必须由final修饰。
④匿名内部类:
1、匿名内部类就是没有名字的内部类,一定是在new的后面,隐含实现一个接口或实现一个类。
2、使用匿名内部类时的几个原则:
(1)不能有构造方法
(2)不能定义任何静态成员、方法和类
(3)不能是public,protected,private,static。
(4)只能创建匿名内部类的一个实例。
3、在以下情况中,可以考虑使用匿名内部类:
(1)只用到类的一个实例。
(2)类在定义后马上用到。
(3)类非常小
(4)给类命名并不会导致你的代码更容易被理解。
相关文章推荐
- java学习基础篇(十)单例设计模式
- 多线程
- Spring MVC +JEasyUI datagrid 使用
- Java SpringMVC浏览器端上传文件至服务器
- spring boot FreeMaker
- java中result和resultSet
- java-类型转换小结
- Spring Security 自定义登录验证与自定义回调地址
- java中各种存储的场景
- 关于Eclipse中项目提示错误而文件不显示错误问题的解决
- 转: 工欲善其事,必先利其器系列--Netbeans之远程开发
- 最好的8个 Java RESTful 框架
- Java 图形图像程序设计 2
- java将IP地址转换为数字以及逆向转换
- Java 图形图像程序设计 2
- java 操作cookie
- java 错误代码回馈到前台
- struts2 多个提交按钮处理
- struts2的json-default和struts-default的区别
- 使用SAX方式解析XML