Java中的封装、继承和多态,你真的都懂了吗

JAVA中的封装、继承和多态知识点是学习java必备的基础知识,看似简单,真正理解起来还是有一定难度的,今天小编再次通过实例代码给大家讲解java 封装继承多态知识,感兴趣的朋友一起学习下吧 。
封装所谓的封装就是把类的属性和方法使用private修饰,不允许类的调用者直接访问,我们定义如下一个类,可以看到所有的成员变量和成员方法都使用private修饰了,我们现在来使用一下这个类 。

Java中的封装、继承和多态,你真的都懂了吗

文章插图
 
打开百度App看高清图片
当我们使用的时候编译器给出了下面这样的报错 。
Java中的封装、继承和多态,你真的都懂了吗

文章插图
 
告诉我们说是private访问控制,那么这是什么意思呢?我们来看看另外一张图,那么这张图代表着什么呢?在看这张图之前,我们先来看看四者都提到的包,那么包又是什么呢,包可以简单理解为一个文件夹,把类放到放到包里面,也就相当于是专门的文件夹里面,这不是我们说的重点,知道就行,类都知道吧,不知道的先去看看博主这篇博客类和对象再回来继续往下 。
ps:稍微记一下这张图中的内容 。
Java中的封装、继承和多态,你真的都懂了吗

文章插图
 

Java中的封装、继承和多态,你真的都懂了吗

文章插图
 
有了上面的基础我们现在再来看private,他的使用范围只有 同一个包中的同一个类中使用(这个范围也就是他的权限),我们就记住只能在我们定义的那个类中使用就好了,别问为什么,因为这就是语法,记住就好了,记准确了是当前类中,不能外部引用,否则就会出现上面那样的报错 。既然不能直接从外部引用,那么类的调用者总得有个办法使用吧,不然实现这个类干嘛,这个时候就是我们在设计类的时候要提供的公开的方法了,那么上述的代码应该写成如下形式 。
Java中的封装、继承和多态,你真的都懂了吗

文章插图
 

Java中的封装、继承和多态,你真的都懂了吗

文章插图
 
ps:这里重写了toString方法才会是下面的输出形式 。上面就是调用了,那么有的读者可能就会问了,那你的eat方法还是private的呀,我还是不能调用啊,这里我解释一下,这是因为我是为了演示private的作用而在eat方法前面加的private,运行时我将它注释掉了,至于实际上像eat这样需要被类的调用者直接使用的方法,肯定是不能使用private修饰的,至于用什么访问权限修饰这就是类的设计者根据日后业务的需要而决定了 。封装的第一个作用就是为了不直接被外部使用,提高代码的安全性,第二个作用就是降低类的使用者的学习成本,不需要知道类的实现,只需要学会调用就好了,封装差不多就介绍完了,接下来聊聊继承 。
继承所谓继承本质就是实现代码的复用,防止重复的代码多次书写,当一个类继承一个类的时候,该类中就会拥有另外一个类中的所有代码,举个例子看下面代码
Java中的封装、继承和多态,你真的都懂了吗

文章插图
 
可以看到继承的语法形式是class 子类名 extends 父类名,继承类就是子类,也叫派生类,被继承的类称为父类,基类或者超类(名字一般不做区分,均可使用),语法形式很简单,我们来聊聊其中的细节,首先Java是单继承的,一个子类只能有一个父类,但是一个子类可以当作另外一个类的父类,即可以B继承A,然后C继承B,代码如下,那么B会拥有A中的代码,C会拥有A、B的代码 。
Java中的封装、继承和多态,你真的都懂了吗

文章插图
 
下面讲的普通类继承知识都是基于父类是公开的并单独位于一个.java文件的 。我们定义一个这样的Animal类当作父类:
Java中的封装、继承和多态,你真的都懂了吗

文章插图
 
当访问使用private修饰的属性时就会报错,这个就是上面封装的知识了,只能在定义的类中使用 。
Java中的封装、继承和多态,你真的都懂了吗

文章插图
 
当去掉private不加任何修饰符时为包访问权限(对应上面的default范围,至于default关键字的使用在接口当中会提到),当前包底下的类才能使用Animal中的属性 。
Java中的封装、继承和多态,你真的都懂了吗

文章插图
 


推荐阅读