Java中有三大特性:
分别是:封装(encapsulation),继承(Inheritance),多态(polymorphism);
之前大家接触的都是面向过程的编程思想,这样会造成很多的代码冗余,降低开发效率,也不方便管理。
从现在开始,大家要学习另外一种思想--------面向对象的编程思想。
前面我们学习了一些Java的基础语法,相信大家也有了一定的掌握。
类是什么?
人类,动物类,植物类,有没有听说过“人以类聚,物以群分”这句话,从字面理解大概也知道意思了吧,没错,Java语言来自于生活,自然也是和生活密不可分的。
类就是对相同事物的描述,有共同的特征,没有实体。
对象就是具体化的,可以真真切切存在的。
封装的概念,为什么要封装?
顾名思义,包裹起来,就是为了防止被不想访问的属性或类访问。就和人一样,都有名字,有鼻子,眼睛,但是都长得不一样。这就是封装。和我们去4s店买车是一样的道理,我们最终想要一台自己满意的,而其中的生产过程我们是不需要知道的。
代码中用访问修饰符实现:
private :私有的,只能在同一个包下,同一个类中被访问到。
public :公有的,不论是在同包还是不同包下都可以被访问到。
继承的概念及使用
继承,Java中使用关键字extends 表示关系。
example:
地主家有三个儿子,有一百亩土地,十二套宅院,有天地主不在了,地主的这些所有财产就全归儿子继承了。
如下图所示:
构造方法的意义:
专门用来创建对象的。
必须与所在类名称一致。
不能写返回值类型,也不用void。
编译器会默认赠送一个构造方法,如果写了一个构造方法就不再赠送。
为什么最后没有显示动物吃,而是猫吃鱼?不是继承了吗?
Java中父类和子类的关系是:
父类中的所有非私有属性和方法,子类都是能继承的,但是前提是子类中没有才会去父类找。
再说说 重载和重写
重载(overload):是在一个类,方法名相同,参数不同,返回类型可以不同。
重写(override):有子类和父类的关系下,子类对父类实现的方法进行重新编写。返回值和参数都不变。