背景:
一、类与对象
1. 类是一个集合、一个模型,是一种事物的抽象概括。而对象则是某个具体的事物。如:石头是一个类,但具体的某个石头则 是对象。
2. 类中有属性与方法,即某类事物的特性与行为。
二、面向对象编程三大特性
1. 封装:将方法的具体实现过程封装起来,只需要输入相应数据即可得出结果。
2. 继承:一个类继承另一个类后,可获得被继承类的全部属性与方法。
3. 多态:同一个类的对象,调用同一个方法,执行过程不同。
原因 :子类继承父类时重写了被调用的方法,并同时用子类对象为父类对象赋值。此过程中,子类对象被强制转换为父类对象。但与父类共 有的重写的方法也传递了过去。
正文:
一、类的构造
修饰符 class 类名 { 内容;}
二、构造器(构造方法)
作用:构造当前类
格式:public 类名 (){}
1.任何一个类都会有至少一个构造方法,当没有写构造方法时,则自动调用默认构造方法:
public 类名 (){};
2.创建对象的过程中,必定会调用相应的构造方法。
3.构造方法实际上有返回值,返回的是新建的该类对象的地址。
4.Java中,默认的对象之间的赋值,传递的是地址,即引用传递。
二、方法重载
定义:同一个类中,多个方法的方法名相同,参数不同(类型、顺序、个数),互为重载方法。
注意:1.创建一个对象只能调用一个构造函数。
2.当写下第一个构造方法时,原有的无参构造方法便被覆盖了。若想还要调用无参构造方法,则需要写出来。
三、继承
定义:类与类之间的继承,继承的叫子类,被继承的叫父类,子类继承父类的属性和方法。
格式:修饰符 class 子类类名 extends 父类类名{}
应用场景:当一个类需要用到另外一个类中的属性或方法,而自己不想重新定义的时候,就可以通过继承关系,直接从另外一个类中继承过来。
注意:继承是单继承的,一个子类只能有一个父类,不能同时继承多个但是可以多层继承。
四、方法重写
前提:继承
实现:在子类中写一个修饰符、返回值、方法名、参数和父类方法完全一样的方法,并为其加上修改后的内容。
作用:在调用子类对象的该方法时,调用的是重写之后的方法。
五、自动转型
定义:子类的对象会自动转型为父类的类型
格式:父类名 对象名 = new 子类名();
注意:转型后的对象,是父类对象。如果子类重写了父类的方法,则执行重写后的,如果没有重写,则执行父类自己的,一定不能调用子类特有的方法。
六、多态
多个同一个类型的对象,调用同一个方法的时候,执行的过程不一样。
补充:this指针:调用当前函数所属类的对象。