面向对象有哪些特征呢?
下文讲述面向对象的三大特征,如下所示:
封装
封装是指把一个对象的状态信息(也就是属性)隐藏在对象内部,不允许外部对象直接访问对象的内部信息。
但是可以提供一些可以被外界访问的方法来操作属性。
就像一台汽车,我们可通过按钮对其进行操作,但是里面的一些特殊的发动机参数我们是无法获知的,
这就是封装的一种表现形式
public class Student { private int id;//id属性私有化 private String name;//name属性私有化 //获取id的方法 public int getId() { return id; } //设置id的方法 public void setId(int id) { this.id = id; } //获取name的方法 public String getName() { return name; } //设置name的方法 public void setName(String name) { this.name = name; } }
继承
找对对象之间的共性,编写一个类,然后其他子类继承这个共性类,形成一个新的类,这个继承的编写方式,可使代码结构更加清晰。
如,小李同学、小明同学、小刘同学,都是学生,都拥有(班级、学号等学生基本信息)。
同时,每一个对象还定义了额外的特性使得他们与众不同。例如小李的数学比较好,小明体育号;
此时我们就可通过继承编写一个新类,采用这种方式可减少代码的编写,也可使代码结构更加清晰。
关于继承如下 3 点请记住:
- 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有。
- 子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
- 子类可以用自己的方式实现父类的方法。
多态
多态,顾名思义,表示一个对象具有多种的状态。具体表现为父类的引用指向子类的实例。
多态的特点:
- 对象类型和引用类型之间具有继承(类)/实现(接口)的关系;
- 引用类型变量发出的方法调用的到底是哪个类中的方法,必须在程序运行期间才能确定;
- 多态不能调用“只在子类存在但在父类不存在”的方法;
- 如果子类重写了父类的方法,真正执行的是子类覆盖的方法,如果子类没有覆盖父类的方法,执行的是父类的方法。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。