类实例化以类的方式组织代码,以对象的形式组织(封装)数据
构造器(构造方法)用 new 进行类的实例化
实例化后会返回一个自己的对象
同一个类会有不同的对象
在进心创建对象的时候必须调用的
alt+insert自动生成构造器
特点
必须和类的名字相同
必须没有返回类型,也不能写void
一旦定义有参构造,无参构造就必须显示定义
功能
三大特性 一、封装
实例化初始值
使用new关键字,本质是在调用构造器
属性私有
二、继承(extends)用get()(用于获取数据)、set()(用于设置数据值)方法操作属性
继承就是扩展,子类是父类的扩展
子类继承父类就会有父类的全部方法
ctrl + h 打开继承树
java中所有的类都默认间接或直接继承object类
私有的东西无法被继承
java里继承是“单继承”,但是“接口”可以“多继承”
super
super是指父类的属性或方法
调用父类的构造器,必须在子类的构造器的第一行
super 和 this 不能同时调用构造方法!
方法重写(Override)
方法名必须相同,参数列表必须相同
☆静态方法:调用方法和左边有关系
☆非静态方法:子类重写了父类的方法(方法必须一致,方法体不同)
★重写的关键词必须是public(范围可以扩大,但是不能缩小)
★抛出的异常:范围可以缩小,但是不能扩大
why
三、多态父类的功能,子类不一定需要,或者不一定满足
Alt + insert :override
instanceof1、多态是方法的多态
2、父类和子类有联系
3、存在条件:继承关系,父类引用指向子类对象
类型转换X instanceof Y(看X和Y之间是否有父子关系)
static1、把子类转换为父类,向上转型
2、把父类转换为字类,向下转型:强制转换(会丢失方法)
3、方便方法调用,减少重复代码
import static java.long.Math.random;
static{
//静态代码块,只执行一次
}
抽象类(abstract)在导入包时加上static关键词---->静态导入包 例:
import static java.long.Math.random;
在下面调用时不用Math.来调用,可以直接random调用 例:
System.out.println(random());
接口(多继承)抽象方法没有方法体
它的非抽象子类必须实现抽象方法(有方法体)
抽象类不能new,只能靠子类去实现它
抽象类中可以有普通方法
抽象方法必须在抽象类中
定义interface 实现implements
接口中所有的定义都是抽象的 public abstract
接口的实现类名一般都用impl结尾
实现了接口的类必须重写接口中的方法



