本文共 536 字,大约阅读时间需要 1 分钟。
要养成的习惯:(用不用得到,都写上!)
- 养成注释的习惯
- 属性要私有化,并设置访问的set,get(养成封装的好习惯)
- 构造方法重载后,要写回无参构造方法,防止子类super()报错
- 重写equals()、hascode()和toString()方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201216194119673.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzI1MTk5OQ==,size_16,color_FFFFFF,t_70)
一个接口就是个功能块!
接口比抽象类的优点就是可以多继承,一个类可以有多个接口(一个对象可以有多个功能),但是具体功能怎么实现需要类自己定义。
抽象类比接口的优点就是可以继承不需要重写的方法(每个对象共有的方法,大家都一样实现的功能)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201216195949195.png)
常常用一个普通类设置属性作为父类; 而引用几个接口作为功能块 养宠物实验:test02ofkeeppets
思想过程:
- 确定具体对象:主人类,和具体的宠物猫、狗、鸟类
- 为了使宠物具有可扩展性,需要对宠物进行抽象后利用多态编程
- 属性抽象:将各种宠物的共有属性抽象为一个普通的类Pet,封装后各种宠物继承此类。这就达到了很好的代码复用
- 行为抽象:将各种宠物的行为进行抽象,形成一个功能块—>接口,各种宠物去实现此接口
- 面向抽象编程:面向抽象的父类Pet、接口进行多态编程!!!
直接去IDEA看public void feed(Pet pet,String food)实现过程就行!
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201217132957146.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzI1MTk5OQ==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201217123429815.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzI1MTk5OQ==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201217123501415.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzI1MTk5OQ==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201217123538219.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzI1MTk5OQ==,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201217131910559.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzI1MTk5OQ==,size_16,color_FFFFFF,t_70)
结果:
转载地址:http://eqsv.baihongyu.com/