面向对象的三大特征:
封装
继承
多态
一、封装:隐藏类中的属性,提供公共的方法给外界
1、private 私有,它可以修饰成员变量,构造方法,成员方法
一个标准类1.0:
成员变量:被private
成员方法:getXxx()和setXxx()
show(): 遍历所有成员变量值
2、this关键字
一个标准类2.0:
给变量名起名讲究见名之意,为了可以去调用当前对象中的成员变量,我们引出了this
this代表的是调用方法的当前对象
3、构造方法
为了创建对象
1、可以发生重载
2、可以给成员变量进行初始化值
一个标准类的3.0
成员变量:使用private关键字修饰
构造方法:一个无参构造方法/一个带所有参数的构造方法
成员方法:getXxx()/setXxx() ..
show(): 遍历所有的成员变量值
4、static
可以被所有类的对象共享的成员,使用static修饰
特点:可以直接通过类名.静态成员的方式调用
随着类的加载而记载的,也称之为类成员
二、继承:多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
1、定义语句格式
class A{}
class B extends A{}
B称之为子类,或者派生类
A称之为父类,超类或者基类
2、java中类只支持单个继承,不支持一次继承多个类,但是可以多层继承
3、super关键字,在子类要想访问父类的成员,就是用super关键字
super可以访问父类非私有成员变量,构造方法,成员方法
this也可以访问本类非私有成员变量,构造方法,成员方法
面试题:this与super的区别?
4、要想初始化子类必须先初始化父类。
5、重写:是发生在继承的关系中
子类重写/覆盖父类中的方法,声明与父类中的一模一样,只是实现不一样而已
面试题:重写与重载的区别/overload和override的区别
6、final关键字:它可以修饰成员变量,成员方法,类
修饰类:类不能被继承
修饰成员变量:变量变自定义常量
修饰成员方法:方法不能被重写
7、final修饰变量的初始化时机
在对象构造完毕前即可
8、多态:
多态的前提:
要有继承关系
要有方法的重写
要有父类的引用指向子类的对象
多态访问成员的特点:******
成员变量:编译看左,运行看左
成员方法:编译看左,运行看右
静态成员方法:编译看左,运行也看左
多态的弊端:不能访问子类特有的方法
解决方案:向下转型
关键字abstract,它可以修饰类,方法
1、抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类
2、抽象类不能被实例化
3、要想实例化抽象类,必须用一个具体的子类继承它
注意:具体的子类继承抽象类,必须重写该抽象类中的所有的抽象方法
4、最终以抽象多态的形式进行实例化。