本节:
1.
方法重写
2.
抽象类
3.
接口
4.
多态
首先,
面向对象的逻辑:
一.方法重写
重写 ,只是一种写法。
父类定义了抽象类和接口,自来拿来用,就得先重写父类所有的方法,否则报错,可以计算机提醒的自动重写。
父类的返回值和形参都不能改变。即外壳不变,核心重写!父亲只是有那个想法,但是具体实现是子类去实现。
2.抽象类abstract。
没有大括号,里面没有内容,只是先有这个行为。
但是具体的,要他的子类去实现具体的内容,叫重写,然后这个类叫抽象类。
抽象类不需要写具体方法,但是普通的类,就必须写方法,不然报错。
只想定义方法名,什么都不要,就写接口。
父类:
子类:
继承的父类,如果有需要重写,继承的子类就必须要重写,不然会报错。
继承的类如何重写:
选到类,然后点击,创建
重写对象的使用:
3. 接口
接口只有方法,没有属性,方法也没大括号,没有实现功能。
继承类,一次只可以继承一个。但是同时可以接多个接口。
接口实现用implements,继承extends.
父类:
子类:自动创建,继承的方法。
抽象类的调用:
4. 多态
就是在new对象的时候,用接口来定义类,然后这个对象,原来类的方法,就被屏蔽了,用不了了。
父类:
子类:
多态对象的调用:
多态的好处:少写很多代码。
写一个接口,然后子类去应用implements这个接口,再写一个方法,就可以不断传不同参数进去。
多态就是传的参数可以不一样,写一个方法调用一个类,定义对象,传不同的对象进去,就不需要一直传创建类。
总结
1.
方法重写 ,只是一种写法。
父类定义了抽象类和接口,自来拿来用,就得先重写父类所有的方法,否则报错,可以计算机提醒的自动重写。
2. 抽象类,父类只定义了方法:public
abstract class Animal { public
abstract void say(); }
没有大括号,就是没有具体实现的内容,这个要子类去重写.子类要先继承:public class Bird extends 父类Animal;再重写父类所有的方法。
3.
接口,只有方法名就是接口:void say()。
父类interface创建接口,子类implements应用接口,并且子类调用接口的时候,屏蔽了自身类的方法,就叫多态。
4.
多态
ps:protected:
- 父类的protected成员是包内可见的,并且对子类可见;
- 若子类与父类不在同一包中,那么在子类中,子类实例可以访问其从父类继承而来的protected方法,而不能访问父类实例的protected方法。