本篇内容主要是对面向对象三大特性,封装,继承,多态,进行粗略归纳。
基本概念
首先了解面向对象的核心思想:以类的方式组织代码,以对象的封装数据。其次是了解面向对象的两大角色——类和对象。
类:类的实例化后会返回一个对象
对象:使用new关键字创建对象。不仅可以分配内存;对创建好的对象进行默认初始化;类中构造器的调用
从代码运行角度考虑是先有类后有对象,类是对象的模板。
三大特性
- 封装:
定义:属性私有,get/set
public class method {
private String name;
public String getName(){
return name;
}
public void setName(String
name) {
this.name = name;
} //可对其进行安全性验证
}
作用:将类的内部细节自己完成,不允许外部干涉。仅暴露少量方法给外部使用。
- 继承:
定义:子类(派生类)extends 父类,子类会继承父类所有方法
public class Students e
拓展:
🔻super:
父类对象的应用,与之对应的是this,但super和this不能同时调用构造方法。
🔻overide(方法重写):
重写是方法的重写与属性无关,子类重写父类的非静态方法,执行的是子类。
💠特征
方法名相同,参数列表相同
方法体不同
修饰符:从父类到子类范围可以扩大
public>protected>default(默认)>private
抛出的异常:范围可以被缩小但不能扩大
💠作用
父类的方法子类不一定需要或满足
注意:
在java所有的类默认直接或间接继承object
java只有单继承没有多继承,即一个子类只能继承一个父类
private不能被继承
3. 多态:
定义:方法的多态。一个对象的实际类型是确定的,但是可以指向对象的引用类型有很多
拓展:
🔻类型之间的转换
父类引用指向子类对象
父类转子类:向下转型,强制转换
Person s=new student( );
student m=(student) s;
m.out( );
//或
( (student) s).out( );
子类转父类:直接转换,可能存在方法的缺失
注意:
当父类与子类方法重写进行子类
当只有父类有,执行父类
当只有子类有而父类引用指向子类对象时需要进行强制转换