天天看点

java面向对象三大特征:封装、继承、多态

一、面向对象三大特征:封装、继承、多态

二、封装:

1、封装两大特征:合理隐藏数据、合理暴露数据

2、把数据使用private修饰,可以通过定义一个public的方法把数据暴露出去

三、继承

1、java是单继承,但是可以间接继承,extends

2、在java中,任何类,除了Object,所有的类都有父类

3、子类可以继承父类的哪些属性和方法?

同一个包下:public、默认、protected

不同的包下:public、protected

访问:

同一个包下:public、默认、protected

不同的包下:public

4、重写/覆盖:override,继承关系中,子类的方法和父类的方法方法名相同,参数类型一致,返回类型相同,访问权限

子类不能比父类更严格:private > 默认 > protected > public @override

5、重载:在一个类中,方法名相同,参数类型不同,对返回值没有要求

6、构造方法是不能被继承,但是子类的构造方法一定会调用父类的构造方法(第一行)

如果子类没有显式调用父类构造方法,系统默认调用父类无参构造方法

如果父类没有无参的构造方法,子类必须显示调用父类有参的构造方法

7、super父类的,调用父类的属性-->super.属性名,调用父类的方法-->super.方法名(形参)

调用父类的无参构造方法-->super(),调用父类有参的构造器-->super(形参)

四、多态

1、向上转型:声明的时候是父类,实例化的时候是子类--> 父类类名 对象名 = new 子类的构造器

   向下转型:声明的时候是子类,实例化的时候是父类--> 子类类名 对象名 = new 父类的构造器,不安全

2、使用多态的时候,调用的属性和方法都是父类的,如果子类重写了方法,则方法调用的是子类的,不能调用

子类存在而父类不存在的属性和方法

3、instanceof: 对象名 of 类名 

五、实例化顺序:知道就可以了