⾯向对象编程的四⼤特征
关于⾯向对象编程
什么是⾯向对象?
我⼀直都觉得这是⼀个很抽象的问题。
与⾯向对象编程相对应的就是⾯向过程编程。
可以拿⽣活中的实例来理解⾯向过程与⾯向对象。
例如:制作五花⾁。
⾯向过程:
1. 去菜市场买五花⾁
2. 洗净、切块、准备作料等备⽤
3. 下锅、上⾊、翻炒、炖
4. 出锅
⾯向对象
1. 五花⾁备好
2. 五花⾁下锅
3. 五花⾁出锅
实际上,⾯向对象的编程思想,就是:当你以看待⼀个对象的⾓度看待⼀个问题的时候,⼀个对象会有很多的特征。就像造⼀辆⾃⾏车,你就把⼀辆⾃⾏车该有的特征都准备好,轮⼦、车架、车把、链条、脚蹬,到这些东西,直接组装起来。⽽⾯向过程就要:要滑动就造轮⼦,要蹬⾃⾏车就造脚蹬,要传动就造链条,要⽀撑⼈再造⼀个车架车座,要控制⽅向再造⼀个车把,⼀步⼀步来。java面向对象的特征有哪些方面
从这个⾓度来看,⾯向对象可以更加直观的解决问题。
⾯向对象编程的四⼤特征-抽象、封装、继承、多态
⾯向对象的特征:抽象、封装、继承、多态。
抽象
就是对同⼀个事的共有的属性(特征)和⽅法(功能/⾏为)进⾏抽取、归纳、总结。如:汽车都有轮⼦、发动机等这些就是汽车的属性,汽车能跑、能载⼈载物等这些就是汽车的功能。这样就可以把汽车的这些功能与属性抽取出来写在⼀个类中,供汽车这⼀类事物使⽤。
封装
在抽象中将属性与⽅法写在⼀个类中就是封装,⽽封装就是为了保证抽象出来的特征和⽅法的安全性,封装就是包装的过程,注意封装不是绝对的封装,如果其他程序要获取已经封装好的数据,就要通过程序指定的接⼝或⽅法才能获取。
继承
特点:
1. 继承要有⼀定的层次结构,还要具备⼀定的可传递性。
2. ⼦类继承⽗类的属性和⽅法,但是私有属性和构造⽅法除外。
3. ⼦类除了拥有从⽗类继承过来的属性和⽅法外,⼦类还可以拥有属于⾃⼰的属性和⽅法。
4. 在java中只⽀持单⼀继承(也就说⼀个⼦类只能有⼀个⽗类,但⼀个⽗类可以有多个⼦类)。
5. 判断两个类的继承关系是否成⽴,可以通过“is-a”判断。
6. ⼦类不能继承⽗类的构造⽅法:构造⽅法是构造⼀个对象时必须调⽤的⽅法,名字也是和类名相同的。显然,⼦类不能继承⽗类的构
造⽅法。
7. 如何实现继承
在java中通过extends关键字来实现继承,语法
【访问修饰符】 class ⼦类 extends ⽗类{ }
继承的作⽤
提⾼代码的重⽤性
public的类和创建⼦类对象
⼀个.java源⽂件中可以包含多个类,但只能有⼀个类带public,⽽且带public访问修饰符的类的类名要和源⽂件的⽂件名相同,main⽅法也要写在带public的类中。
当创建⼦类对象时,那么⼀定会先执⾏⽗类的构造⽅法创建⽗类对象,然后在调⽤⼦类的构造⽅法创建⼦类的对象。⽽且在创建⼦类的对象时⽆论是调⽤有参数还是⽆参数的构造⽅法,JVM都会默认的代⽤⽗类的⽆参数的构造⽅法创建⽗类的对象。
多态
多态就是指同⼀种事物在不同的情况下的多种表现形式
多态的表现形式有:⽅法重写,⽅法重载,接⼝和接⼝的继承,类和类的继承
⽅法的重载:
在同⼀个类⾥⾯,相同的⽅法名,不同的参数,这就是⽅法的重载,参数的不同包括:参数的个数、类型、顺序的不同。
普通⽅法和构造⽅法都可重载,⽅法重载会根据传递的参数来决定调⽤哪个⽅法。
需要注意的是,返回类型的不同不构成重载,也就是和返回类型⽆关,只和参数有关。也就是相同的参数,不同的返回类型,不能构成重载。不同的参数,⽆关乎返回类型,都能构成重载。
⽅法的重写:
发⽣在⼦类继承⽗类的关系中,⽗类中的⽅法被⼦类继承,⽅法名、返回值类型、参数完全⼀样,但是⽅法体不⼀样那么说明⽗类中的该⽅法被⼦类重写了。
重写的⽬的:当⽗类中⽅法,⽆法满⾜⼦类的需求时,那么⼦类可以对⽗类的⽅法进⾏扩展
注意:⽅法重写⼦类的访问修饰符的范围不能缩⼩。为了防⽌出现在运⾏期多态的时候,⽗类的⽅法可以访问,⽽⼦类不可以访问这样的错误。
重写时访问修饰符变⼤⼜有什么好处呢?可以将⽗类中⼀些protected的⽅法重写为public⽅法,这样可以通过⼦类的引⽤调⽤这些⽅法。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。