1、简单的理解面向对象的思想
面向对象的思想:当你遇到一个问题时,去想找专门的对象做专门的事。放在java里面,当遇到一个问题时,就可以去想当前问题涉及到哪些类,类有哪些方法属性,类之间是怎样的关系。
区别于面向过程的思想:当你遇到一个问题时,一般是想第一步怎么做,第二步怎么做。
2、类和对象
类可以看做是一类事物的抽象描述,类中定义了这一类事物的静态特性和动态特性,类是对象的模板。对象是类的实例。对象通过属性来描述对象的静态特性,通过方法来描述对象的动态特性,java里面对应类的属性和方法。对象的属性可以用来区分不同的对象。
3、java面向对象编程的三大特性
封装:封装就是把该隐藏的隐藏起来,把该暴露的暴露出来。
1. 修改属性的可见性来限制对属性的访问(一般限制为private);
2、对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问。
继承:
如果两个类存在继承关系,被继承的类称为父类,通过继承得来的类称为子类。继承就是子类继承父类的特征和行为。继承需要符合的关系是:is-a,父类更通用,子类更具体。Java 不支持多继承,但支持多重继承。子类拥有父类非 private 的属性、方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类如果需要改变父类现有的方法,可以重写父类方法。(重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!)子类可以用自己的方式实现父类的方法。继承规则解决了代码复用问题。
继承关系里面涉及到几个关键字:
extends,类访问权限关键字(public,protected,default(同包访问),private(同类)),super(子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。),this,implements,final(final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写,被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final)
多态:
在实际应用中,多态出现在继承或接口实现场景中。表现在用父类类型接收子类对象。使用时,如果子类重写了父类方法,会优先调用子类重写了的方法,如果子类没有重写方法,相当于调用继承的父类的方法。继承的时候,方法动态绑定,即方法优先使用子类的方法,属性静态绑定。用父类类型接收子类对象时,不允许调用子类特有的方法。一般如果需要使用子类特有方法,那么不使用多态即可,使用普通方法创建。
原文:https://www.cnblogs.com/myblog2016/p/11144551.html