对象的特点:封装、继承、多态。
一、封装
封装的概念:就是将属性私有化,提供setter和getter方法进行访问
作用:保证数据的合理
二、继承
1、继承的概念:子类通过继承,可以使用父类中的属性和方法,及类与类之间特征和行为的赠与 或获得
满足继承关系的前提:二者必须具备is a关系
2、语法:class 子类 extends 父类{}
创建子类对象=父类共性+子类独有
3、继承的好处:减少代码的冗余,提高代码的复用性
4、继承的特点:Java只支持单继承,不支持多继承,形成集体系结构
5、不可被继承
①构造方法
②private修饰的属性和方法
③父子类不在同一个package中,使用default修饰的属性和方法。
三、多态:父类引用指向子类对象。
1.概念:父类引用指向子类对象。
注意:
父类引用只能调用父类中所定义的属性和方法,子类独有的属性和方法不可调用。
二者必须存在继承关系
2.多态中的方法覆盖:
子类覆盖父类中的方法,使用父类引用调用该方法,执行的是覆盖之后的。
3.好处:
降低耦合性
屏蔽子类间的使用差异
4.向上转型、向下转型(掌握)
①、 向上转型(装箱):父类引用中保存的是子类对象。
举例:Dog d= new xiao();
注意:父类引用只能调用父类中的属性和方法。
②、向下转型(拆箱):将父类引用中所保存的真实类型强制转换为自身类型。
举例:Xiao x = (Xiao)d;
注意:只有转换为子类真实类型,才可以调用子类中独有属性和方法。
四.访问修饰符
public:所有的类均可访问
private:除了本类,其它的类均不可访问
protected:除了本类和同一个包下的,以及该类的子类,其它的类均不可访问
默认:除了本类和同一个包下的类,其它均不可访问
五、super
1.用法:
super.成员方法():表示调用父类中的成员方法
super.属性:表示调用父类的属性
super()和super(实参):表示调用父类的构造方法
注意:如果构造中没有this()或者this(实参)或者super(实参),每一个构造方法中首行都隐式存在super()。
在一个构造中this()或者this(实参)或者super()或者super(实参)因为都要求在首行,所以只能使用一个。
六、方法的覆盖
1.什么时候需要覆盖?
父类的方法无法满足子类的需求,需要覆盖。
2.覆盖的要求:
①返回值类型、方法名、形参列表和父类完全一致
②修饰符和父类相同或者比父类更宽
注:当子类覆盖父类方法后,调用该方法,执行的是覆盖之后的。
3.重载和覆盖区别?
重载:一个类中定义多个相同名称的方法。
要求:
1.方法名相同
2.参数列表不同(类型、个数、顺序)
3.与访问修饰和返回值类型无关
覆盖:父类方法无法满足子类需求,需要进行覆盖。
要求:
1.返回值类型、方法名、形参列表和父类完全一致
2.修饰符和父类相同或者比父类更宽
————————————————
版权声明:本文为CSDN博主「qq_58849698」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_58849698/article/details/118356396