面向对象
谈及面向对象,我们先来说说什么是面向对象?
那就是由以往的执行者变成的领导者.在这里要严格和面向过程区分开,面向过程主要强调的是过程,分析出做一件事需要的步骤一步一步分出来,然后一步一步去执行.用生活中的例子距离就是,用洗衣机洗衣服:我们需要把衣服放到洗衣机里,加水,然后洗涤,到最后甩干.而面向对象,我们只要调用洗衣机这个对象就可以了,很方便吧!!!
面向对象有什么好处呢?
那就是将一切事物都简单化了,我们可以用生活中的例子来考虑到底应该怎么解决这个问题,这也是java一大优势.
面向对象的特征:
封装,继承,多肽.
那么我们来一一说明这三个特征.
1.封装
首先说什么是封装?
那就是隐藏事物的属性,功能,行为,对外提供公共的访问方式.比方说一个插座,将其主板用外壳封装起来,其他人并不知道它怎么怎么实现供电的,也不知道里面用什么实现供电,我们只要把用电设备插上去了,说道这里我们应该来看一下封装的好处.
封装的好处:提高了代码安全性,复用性.
封装的原则:把不需要对外展示的实现细节都隐藏起来,只提供公共的访问方式
2.继承
什么是继承?
简单的说,就是让类与类,或者接口与接口之间产生关系.这时候就会出现子父类的关系.
那么继承有什么优点和缺点呢?
优点:子类可以用父类的所有公共方法,数据.
缺点:只能单继承,不能多继承(可以多层继承).
3.多态
什么是多态?
其实就是事物存在的多种形态.在面向对象语言中,接口的多种不同的实现方式.
前提:1.多态的前提是要有继承关系.
2.必须有父类方法的重写.
3.用父类引用指向子类对象
多态的优缺点:优点:提高了代码的扩展性,可维护性.
缺点:父类不能使用子类特有的方法.
附上一个多态的代码来说明一下
class Polymorphic {
public static void main(String[] args) {
Animal a = new Cat(); //父类引用指向子类对象
a.eat(); //调用子类的方法
}
}
class Animal {
public void eat() {
System.out.println("动物吃饭");
}
}
class Cat extends Animal {//多态前提,要有继承关系,关键字是extends
public void eat() {
System.out.println("猫吃鱼");//子类重写了父类的eat()方法
}
}