java面向对象 oop
所谓万物皆对象,没有什么对象是不能new 出来的
java面向对象有三大特性 封装 继承 多态
封装
封装:是指隐藏对象的属性和实现细节,仅仅对外提供访问的方式
好处:
将变化隔离、便于使用、提高重用性、提高安全性
封装原则:
将不需要对外提供的内容都隐藏起来、把属性都隐藏,提供公共方法对其访问。
private 关键字
是一个权限修饰符。
用于修饰成员(成员变量和成员函数)
被私有化的成员只在本类中有效。
常用之一:
将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。
private :私有,是一个权限修饰符。用于修饰成员。
私有的内容只在本类中有效。
注意: 私有仅仅是封装的一种体现。
继承
子类继承父类 extends
好处:
提高代码的复用性 ,避免重复
父类(超类)的属性和方法可用于子类
设计应用程序变得更加简单
子类可以扩展父类的属性和方法
Super 关键字
子类的构造方法中,super默认调用父类的无参构造方法
super. 可以调用父类的公共的属性或者方法
super调用父类的构造方法默认在第一行
子类重写父类的方法:方法名相同,方法的参数相同
重写的方法只能对非静态的方法有效,对于有static关键字修饰的方法,还是属于类方法
多态
多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作
//大 小 这个还是父类的引用 指向了子类
Persion d = new Student();//向上转型自动装 子类转换为父类 这个d还是父类的对象
Student s =(Student)d;//向下转型,强制类型转换
s.eat();
d.run();
//这个d对象点不l Eat方法只要是左边的Persion中没有这个方法,对象.eat只能和左边的有关
System.out.println(p instanceof Student); //判断是否存在父子关系
1 多态向上转型 子类转换为父类 自动转 会丢失方法
2 向下转型 父类转换为子类 强制转换