JAVA-基础(三大特性)
封装 继承 多态
1.什么是 封装?
即将类内部的属性进行隐匿,拒绝外部直接修改访问,只能通过本类提供的方法进行访问。 对封装而言,即将类内部的实现细节隐藏,只对外暴露解决问题的方法,而外部的使用者只需要去调用,不需要关心怎么实现。成员变量private 用get set方法调用,所以get set方法的一点好处就是封装。
2.什么是 继承?
(以师傅徒弟为例)继承即是师傅与徒弟的关系,师傅会的东西徒弟都会(师傅可能藏私,即private修饰的是师傅不想教给徒弟的 0.0),public和protected成员变量都可以被继承,有可能将师傅的技能进行重新再次改写,或许徒弟会的技能比师傅还要多。即一个子类继承了父类,从子类来看,父类的东西基本都是子类的了(除去private)。
3.什么是 多态?
extends继承或者implements实现,是多态性的前提。多态也可以简单理解为:多态是指一个事物有多种身份,例如你是一个学生,也同样是一个人。
多态的好处,(以老板员工举例)老板会给员工发工资,但是员工有不同的种类,如有销售的,撸代码的,但是老板不管你是谁,我只管给你发工资就行,我不用计较你究竟做了什么。
4.继承的注意事项?
(1).继承的格式?
定义父类的格式(一个普通的父类)
定义子类的格式(
public class 父类名称{
.....
}
)
(2).继承成员变量的访问特点(两种)?
- 直接通过子类对象访问的成员变量
先看子类有没有这个变量,没有向上找父类有没有。
- 间接通过成员方法访问成员变量
以get方法为例,这个方法属于谁就优先使用谁。
(3).区别成员的方法?
- 局部变量:直接写。
- 本类的成员变量:this。
- 父类的成员变量:super。
(4).继承中构造方法的访问特点?
- 子类方法中有一个默认隐含的super()调用,所以一定是先调用父类构造方法,后执行的子类构造。
- 子类构造可以通过super关键字来调用父类重载构造。
- super的父类构造调用,必须是子类构造方法的第一个语句,不能一个子类构造调用多次super构造。
- 子类必须调用父类的构造方法,不写则赠送super(),写了则用写的指定的super调用,super只能有一个,还必须是第一个。
(4).继承的特点?
- java语言是单继承的。
- java语言是可以多级继承的。
- java语言一个父类的是可以有多个子类的。
4.多态的注意事项?
(1).访问成员变量的两种方法?
1.直接通过对象名访问成员变量,看等号左边是谁,就优先用谁,没有,则向上找。
2.间接通过成员方法访问成员变量,看方法属于谁,就优先用谁,没有向上找。
(2).向上转型?
这是安全的,即一个学生,他想转成人,这肯定是安全的,子类对象转换为父类对象。格式:Fu fu = new Zi();但是同时子类的一些方法fu是不可以再去调用的,具体看(1)。
(3).向下转型?
这是不安全的,一个人,想转成学生,这是不一定的事,父类引用的对象转换为子类类型称为向下转型。格式:Zi zi =(Zi) new Fu();需要强制转换,可以先进行判断。
instanceof用法:
对象名 instanceof 类名 ,判断这个对象是否是属于这个类或是其子类 。