java核心知识点
来源:互联网 发布:java new date 格式化 编辑:程序博客网 时间:2024/05/21 09:33
interface 接口
- 接口和抽象类的相同点
A:都代表系统的抽象层
B:都不能被实例化
C:都能包含抽象方法 - 两大区别:
A:在抽象类中可以为部分方法提供实现(实例方法),但接口中不允许有实例方法,在抽象类中增加新的实例方法不会对子类造成影响,因为子类不必实现(覆盖)这些新方法,但接口中只能增加抽象方法,增加新方法后,子类要么去实现(覆盖)这些新方法,要么把自己改为抽象类. - B:站在子类的角度看,一个类只能继承一个抽象父类,但可以实现多个接口
- 什么时候用接口什么时候用抽象类?
1,接口具有稳定性,一旦制定不能随意修改
2,抽象类用于定制系统中的扩展点 - 接口相关的6种设计模式:
定制服务模式,适配器模式,默认适配器模式,代理模式,标识类型模式,常量接口模式
----------------------------------------------
- overload 方法重载
重载的三个必要条件,A参数个数不同 B参数类型不同 C参数顺序不同
重载的方法可以有以下特征:在方法名相同的情况下A,返回类型可以不同,B,权限修饰符可以不同 - override 方法覆盖
覆盖是子类对父类的方法进行重写
覆盖时注意事项:
A方法名,参数个数,参数顺序,参数类型,返回类型必须与父类方法一致
B子类方法不能缩小父类方法的访问权限
C子类方法不能抛出比父类方法更多的异常
D只能覆盖父类的方法,(同类中方法之间是重载关系不是覆盖关系!)
E父类的静态方法不能被子类覆盖为非静态方法(子类覆盖父类静态方法的作用是:隐藏/屏蔽父类静态方法)
F父类的非静态方法不能被子类覆盖为静态方法
G父类的私有方法不能被子类覆盖
H父亲的抽象方法被子类覆盖有两种方式:1:子类实现父类的方法体。2:子类覆盖父类抽象方法(继续抽象)
-----------------------------------------------
- java语言中4种访问控制权限
public 同类,同包,子类,不同包
protected 同类,同包,子类
无修饰符(默认) 同类,同包
private 同类
abstract 抽象类与抽象方法
抽象类是在class前用abstract修饰的类。它有较高的抽象层次
A:抽象类不能被实例化。
B:抽象类允许有非抽象构造方法,这个构造方法在抽象类的子类被实例化的时候执行
C:抽象类中的所有的抽象方法必须在在子类中进行实现
D:抽象类中可以没有抽象方法。就算没有抽象方法,抽象类也不能被实例化。
E:抽象类和抽象方法不允许被final/static修饰
final类和方法
final 类不能被继承,final方法不能被子类覆盖override
用final 修饰的变量表示常量(不允许再被赋值)- static 修饰变量(静态变量),修饰方法(静态方法),修饰代码块(静态代码块)
A:关于静态变量:用static 修饰的变量为静态变量,反之为实例变量 - 静态变量与实例变量的区别:1:静态变量在内在只分配一次内存,实例变量每实例化一次就分配一次内存。2:静态变量可以用类名直接访问,也可以把类实例化之后访问。3:静态变量被类的所有实例共享。
作用1:如果对象有相同属性值,在把对象抽象成类时,在类中定义一个静态常量,表示所有对象共享的值(不可修改)
作用2:如果对象需要共享一个值,每个对象都可以改动这个值,就在类中定义为静态变量,每个对象对它的改动,其他对象都是可见的。 - 关于静态方法 用static 修饰的方法为静态方法,反之为实例方法
静态方法必须有方法体(必须被实现)
静态方法可以用类名调用,也可以用类的实例来调用
静态方法中不能使用this/super关键字,也不能直接访问所属类的实例变量和实例方法,只能访问静态变量和静态方法。
static 和 abstract关键字永远不能放在一起使用 - 关于静态代码块
static代码块用来初始化类本身,而类的构造方法是用来初始类的实例,当一个类被实例化时,static代码块先执行,类的构造方法后执行。
- java核心知识点
- JAVA核心知识点
- Java核心知识点-反射
- Java核心知识点-NIO
- Java核心知识点-NIO
- Java核心知识点-Java多线程
- Java核心知识点-synchronized关键字
- Java核心知识点-一些基本概念
- Java核心知识点-Byte详解
- Java核心知识点-ClassLoader详解
- Java核心知识点-路径获取
- Java核心知识点-Java编译原理
- 第2天:Java核心知识点总结
- Java核心知识点-类加载器
- Java核心知识点-I/O流
- Java核心知识点-多线程同步锁
- Java核心知识点-JVM再深入
- Java核心知识点-JVM结构和工作方式
- VB.NET里面的Event机制(三)
- 安装S60 5th SDK失败
- 使用信号量
- 我 的自序
- 如何删除MyEclipse中不需要的workspace
- java核心知识点
- 吴文钊:物流小企业抓营销 大企业抓管
- 2. Socket API概述 - C++NP(ACE)
- CascadeType 與 FetchType
- 艺术招生考试/艺术职称考试/才艺比赛/艺术特长考试/舞蹈比赛等-评委现场打分公开展示系统的定制
- IT管理人才必备的十大能力
- 关于数字签名
- 4.2.2.1 锁(lock)类属
- SQLite的查询优化