目录
封装
封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象。
对于封装而言,一个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作。
封装的优点:
1、良好的封装能够减少耦合。
2、类内部的结构可以自由修改。
3、可以对成员进行更精确的控制。
4、隐藏信息,实现细节。
举例:
封装就是把这些过程隐藏起来,吃苹果的人没必要知道苹果的成长过程,除草施肥等,你只需要把产出苹果的过程当做一个机器,外面的人只是知道机器可以生成苹果,有人放原料,其他人就可以吃苹果
这种方法有几个好处:1. 从分工上把人分开,每个人干不同的事情,容易管理;2.具体技术细节不让其他人知道,避免不必要的干扰和数据泄露;3.具体生产工艺的改进或问题解决不会影响到其他人的工作;
继承:
继承父类,不仅可以拥有父类的属性、方法。还可以定义自己独有的属性和方法。
- 子类拥有父类非private的属性和方法
- 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
- 子类可以用自己的方式实现父类的方法。
构造器:对于构造器而言,只能被调用,不能被继承。
多态:
多态就是说 父类和子类的关系
子类是父类的类型
向上转型:就是说子类的对象可以给父类的引用
//向上转型
class A extends B
class C extends B //两个类都继承B
//那么
B b=new A(); B b1=new C();
向下转型:就是本来对象就是子类对象,但是他是父类的引用,需要强转成子类的类型,但是这样是不安全的
//而向下转型就是
A a=new A();
B b=a;
//这个时候本质b是一个a对象,所以我们再使用的时候可以强转成a
A a1=(A)b;
不安全 是因为此时我们知道b是a类型 B b=new C()
这个时候b是c类型的 你强转成a 运行就会报错 可以通过
instanceof 来判断他本来的类型 if(b instaceof A) {
这个时候说明他是a就可以转成a 即 A a1=(A)b;
}