三大特征
三大特征,其实也没什么高大上的东西,这就是日常的东西。但是正儿八经的定义,又说不大上来。简单归简单,用起来 简直了。项目代码混乱,类之间的关系错综复杂 … 这些肯定会碰到
封装
利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。
例:我建一个 Cat 类,可以吧爪子,毛发这些属性都添加都 Cat 类中。
例:我们比较常见的是,把一些重复利用到的方法,封装到一个类里面。
继承
所用到的关键词 extends ,它会继承所标识类的所有的方法和属性。通常的用法是提取好几个类共同的属性,然后继承这个类,这样可以节约很多代码。
注:可别碰到啥都用继承,毕竟用 extends 后,你可能会遗忘掉它到底继承了啥,要反复查看,真的蛋疼。有时候多写几个属性也没事。
多态
多种形态嘛,下面List
一个 Instrument(乐器),Wind(号角) 和 Percussion(打击乐器)都继承了 play方法,并且重写了它。执行下来,并不会执行 Percussion 的 play 方法
著作权归https://www.pdai.tech所有。
链接:https://www.pdai.tech/md/java/basic/java-basic-oop.html
public class Percussion {
public void play() {
System.out.println("Instument is playing...");
}
}
public class Wind extends Instrument {
public void play() {
System.out.println("Wind is playing...");
}
}
public class Percussion extends Instrument {
public void play() {
System.out.println("Percussion is playing...");
}
}
public class Music {
public static void main(String[] args) {
List<Instrument> instruments = new ArrayList<>();
instruments.add(new Wind());
instruments.add(new Percussion());
for(Instrument instrument : instruments) {
instrument.play();
}
}
}
抽象
补充一点吧, 这个可以作为第四大特性了。这不是我说的,很多地方都这么认为了。
关键词 abstract ,这个特性很棒。你可以定义一些公共的方法,放到 抽象类中。
例如:抽象类叫做, shape(形状),里面有 获取面积方法、获取周长方法。这个世界上有很多奇形怪状的东西,但是他们肯定有 面积 和 周长,但是公式肯定都不一样。所以就把这些方法提取出来,封装成一个抽象类,抽象类不需要实现,只需要声明出来。实现的方式让调用的类来实现。
参考: Java中抽象 java 抽象类的例子