方法重写
从父类继承的方法对子类不适用
在子类中,重新定义,重新编写这个方法
继承
执行父类构造方法
新建子类对象时,先新建父类对象,并执行父类的构造方法
多态
作用:一致的类型
所有子类型的对象,都可以被当作一致的父类型来处理
类型转换
·向上转型
子类的实例,转型成父类型
向上转型后,只能调用父类定义的通用成员
·向下转型
已经转为父类型的子类实例,再转回成子类型
某种类型,要特殊处理,可以转回成子类型处理
向下转型后,才能调用子类特有的成员
建立一个对象s和p,这两个引用保存的内存地址都是同一个对象的地址,只是引用的类型不同。
运行期类型识别
shape s =new Line();
s instanceof Line true
什么是面向对象
·封装
类,对象,引用,构造方法,this,重载
·继承
作用
单继承
子类对象
父类构造方法
重写
·多态
作用
向上转型
向下转型
instanceof运行期类型识别
抽象类
半成品类,没有完成的类
抽象类不能创建实例
包含抽象方法的类必须是抽象类
抽象方法必须在具体子类完成(实现)(作为通用方法在父类中定义,格式为 public abstract String cry( ); ,直接用封号结束,没有后面的代码块)
alt+/ 提示
Final 关键字
方法
方法不能被子类重写
类
不能被继承
System
String
Static
静态
属于类,而不属于对象
调用静态成员时,用类名调用
什么时候使用静态
原则:能不用就不用
静态是“非面向对象”语法,要调用时用类名调
使用场景
共享的数据
工具方法
Math.random()
String.valueOf()
Integer.parseInt()
静态代码块中
可以直接调用静态成员
不能直接调用非静态成员,必须新建实例,用实例来调用
静态初始化块
class A{
static{
静态初始化块
在类被加载时,只执行一次
}
访问控制符
限制一个类,或类中的成员的访问范围
选择原则:
尽量小范围访问
public是与其他开发者的一个契约,约定公开的东西会尽量保持稳定不变
缩小访问范围,更便于代码的维护和修改,不会对其他代码产生影响。
成员变量一般都设计成私有
如果类中的成员变量非常多,为了同胞调用方便,可以选择default
如果希望子类继承这个变量,可以选择protected
自动生成
右键-source-Generate Constructor using Fields…
alt+shift+l
home 行首
end 行尾
shift +回车
control +d 删行
公共类的类名必须是文件名,一个文件里就一个公共类
[if !supportLists]1. [endif]添加断点:在每条代码前双击加断点
[if !supportLists]2. [endif]用debug执行,F11开始调试,F8一步一步向后执行
对象创建过程 (没明白)