一.封装
1.概念:属性私有化(private),提供setXXX和getXXX。
2.作用:保证数据的合理。
二.继承
1.概念:类与类之间,特征和行为的赠与或获得。
满足继承关系的前提:二者必须具备is a关系。
2.语法:class 子类 extends 父类{}
创建子类对象 = 父类共性 + 子类独有
3.继承的好处:减少代码的冗余,提高代码的复用性。
4.继承的特点:
java只支持单继承,不支持多继承,但可以多层继承,形成集成体系结构。
A 继承 B
A 继承 B 继承 C
A 继承 B A 继承 C
5.不可被继承
①构造方法
②private修饰的属性和方法
③父子类不在同一个package中,使用default修饰的属性和方法
三.访问修饰符
访问修饰符 本类 同包 非同包父子类 其他
private √
默认 √ √
protected √ √ √
public √ √ √ √
四.方法的覆盖
1.什么时候需要覆盖?
父类的方法无法满足子类的需求,需要覆盖。
2.覆盖的要求:
①返回值类型、方法名、形参列表和父类完全一致
②修饰符和父类相同或者比父类更宽
注:当子类覆盖父类方法后,调用该方法,执行的是覆盖之后的。
3.Overload和Override区别?
重载(Overload):一个类中定义多个相同名称的方法。
要求:
1.方法名相同
2.参数列表不同(类型、个数、顺序)
3.与访问修饰和返回值类型无关
覆盖(Override):父类方法无法满足子类需求,需要进行覆盖。
要求:
1.返回值类型、方法名、形参列表和父类完全一致
2.修饰符和父类相同或者比父类更宽
五.super(父类 基类 超类)
1.用法:
super.成员方法():表示调用父类中的成员方法
super.属性:表示调用父类的属性
super()和super(实参):表示调用父类的构造方法
注意:如果构造中没有this()或者this(实参)或者super(实参),每一个构造方法中首行都隐式存在super()。
在一个构造中this()或者this(实参)或者super()或者super(实参)因为都要求在首行,所以只能使用一个。
一.构造方法
1.概念:类中的特殊方法,用来创建对象。
new Dog();
调用了Dog类中的无参构造
分为无参构造和有参构造
无参构造:每个类中都有一个默认的无参的构造方法
有参构造:主要是方便为属性赋值,参数名要见名知意
注:如果定义了一个带参数的构造方法,系统则不再提供默认的无参
2.要求:
①方法名和类名一致
②没有返回值类型
③不能手动调用
注意:如果类中没有显示提供构造方法,编译器会默认提供无参构造方法。
二.方法的重载
1.概念:一个类中可以存在多个重名方法。
2.要求:
①方法名相同
②参数列表不同(类型、个数、顺序)
③与修饰符返回值类型无关
好处:屏蔽使用差异。
3.构造方法重载
作用:构造方法支持重载,主要是方便为属性赋值。
三.this关键字
1.概念:表示当前对象。一般用于构造方法
2.this的用法:
this.属性:表示调用本类中的实例属性。
this.方法名():表示调用本类中的实例方法。
this()和this(实参):分别表示调用本类中的无参构造和带参构造。
注意:this()和this(实参)必须放在构造方法中的第一行。
四.static关键字(静态)
1.概念:
①静态可以修饰属性和方法。
②修饰属性我们称为静态属性(类属性),修饰方法称为静态方法(类方法)。
③静态成员是全类所有对象共享的成员,只有一份,不因创建多个对象产生多份。
④静态成员应该使用类名访问。
2.调用静态方法:
在同一个类中有多个静态方法,之间互相调用可以直接写"静态方法的名称"
在不同类中,调用其他类的静态方法语法:类名.静态方法名称
3.static特点
①静态方法可以直接访问静态成员。
②静态方法不能直接访问非静态成员,可以通过创建对象进行访问。