体现面向对象的三个特征:封装继承和多态
封装
- 提高了代码的复用性
- 提高安全性
- 隐藏实现的细节
- 给外部提供一个可以访问的方式(get/set方法也就是赋值和取值的过程) 便于调用者的使用
封装就像机箱一样把电脑需要的东西都装进去,然后提供USB等接口供外部使用,你不需要知道里边有什么东西,隐藏主板CPU内存硬盘等设备的细节,只需要知道有这功能就行,使用就可以了
总结:类中不需要对外部提供的内容都私有化,包括属性和方法
继承
为了提高复用性,建立一份代码,只需要一个类和另一个类产生关系
继承给多态提供了前提
举例:学生和工人
属性:名字,年龄(共性)
方法:学习(学生),工作(工人)
此时可以创建一个类*“人”作为父类,让学生和工人继承共同的属性就可以了,学生和工人就变成子类,继承了父类共同的属性
何时定义继承?
必须保证累与类之间有所属关系
例如苹果-水果
狗-犬科
在Java中继承的体现
java允许单继承,不允许多继承,将多继承进行其他方式的体现(接口的实现)
不仅拥有了亲爹的属性和方法,还可以扩展让干爹帮助实现其他功能
java支持多重继承
class A{}
class B extends A{}
class C extends B{}
C就拥有了A和B的属性和方法
学习继承体系时,应该参阅顶层的类的内容,了解这个体系的基本功能。
使用这个体系功能,需要创建最子类的对象。
看顶层,建底层。
画家谱图方便理解继承和使用。
如何在子类中直接访问和父类同名的变量呢?
通过关键字super来完成
this代表本类对象的引用
super代表的是父类的内存空间
子类可以对父类中的方法进行重写
多态
父类的引用指向了自己子类的对象
Animal a=new Dog();
Animal aa=new Cat();
好处:提高了程序的拓展性
不管以后再添加什么动物,都是Animal的类型
**弊端:**通过父类引用操作子类对象时,只能使用父类中已有的方法,不能操作子类特有的方法
前提:必须有关系(继承或者实现)
通常都有重写操作
多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。从程序设计的角度而言,多态可以这样来实现(以java语言为例):
public interface Parent//父类接口
{
public void simpleCall();
}
public class Child_A implements Parent
{
public void simpleCall();
{
//具体的实现细节;
}
}
public class Child_B implements Parent
{
public void simpleCall();
{
//具体的实现细节;
}
}
没有发表太多有关于实际操作的内容,只是对概念性的知识进行了梳理。