面向对象特征
1.封装 :封装也叫作信息隐藏或者数据访问保护类比一下就是把自己类里面的属性进行部分权限开放,有的属性权限能读写,有的属性只能读这样举个例子
public class Sum {
private int x = 0;
private int y = 0;
private int sum = 0;
<p>public int getX() {
return x;
}</p>
<p>public void setX(int x) {
this.x = x;
sum = x + y;
}</p>
<p>public int getY() {
return y;
}</p>
<p>public void setY(int y) {
this.y = y;
sum = x + y;
}</p>
<p>public int getSum() {
return sum;
}
}
求x,y的和,我们可以读写x,y,但是不能写sum,因为sum是需要我们计算的,暴露了写sum的权限,会导致求和结果有问题,当然我这代码写的是故意写的不简洁的,让大家感受到bug的威力的,大家别学所以封装的作用也在于此,防止,程序员错误操作导致逻辑错误
2.继承:继承需要语法支持,表示一种is-a的关系,简单来说,就是父类的属性和方法子类也可以使用,动物可以移动,狗是一种动物,所以狗可以移动应用场景也很明显就是复用,但是别多重继承,多重继承的可读性太差了,一个类一个的向上翻
3.抽象:隐藏方法具体实现,能用就行了,不要关心我是怎么干的,抽象很重要啊,能帮助程序员把一些很复杂的逻辑包装在一个方法里,写出简洁的代码,用的时候也不需要关心里面是什么,用就行了
4.多态:多态也是需要语法支持的,指可以用子类代替父类,并且可以使用子类的方法举个🌰 狗是一种动物,蛇也是一种动物,他们有共同的方法呼吸,睡觉等等,但是狗的移动是用四只脚奔跑移动的,蛇就是用身体爬爬爬,Animal animal1 = new Dog(); animal1.huxi(); animal1.move();Animal animal2 = new Snake(); animal2.huxi(); animal2.move();他的好处也就显而易见了,复用呼吸,重写move(),达到复用,增加可拓展性的作用
评论区