* abstract:抽象的
* 1.可以用来修饰类、方法
*
* 2.abstract修饰类:抽象类
* >抽象类不可以被实例化(即不能创建抽象类的对象)
* >抽象类通常是用来被继承的,那么继承的子类可以使用父类声明的结构:属性、方法等
* >抽象类中可以声明构造器!(凡是类都有构造器)
* >抽象类中可以没有声明抽象方法
*
* 3.abstract修饰方法:抽象方法
* >抽象方法只保留方法的声明,没有功能的具体实现。
* >格式为:比如:public abstract void eat(); public abstract int getAge();
* >抽象方法所在的类,一定是抽象类
* >抽象方法就是需要子类继承抽象类以后,需要被重写的!
* >子类重写抽象类中的所有抽象方法以后,方可实例化。比如:Student类
* >若子类没有重写完抽象类中的所有抽象方法,(意味着这个子类里仍有抽象方法)那么此子类仍然是一个抽象类。
* 比如:Worker类
4. 不能用abstract修饰属性、构造器;不能让abstract与final、 private、 static 共用
* 接口的使用
* 1.声明的声明:interface 接口名{}
* 2.接口中的属性全都是常量,接口中的方法全都是抽象方法,接口中是没有构造器的!
* 3.接口可以看成是一个彻底的抽象类。类与接口是两个并行的概念
* 4.接口与接口间可以有继承关系,而且是多继承的。interface B extends A,C,D
* 5.接口与类之间的关系:实现关系。格式:class E implements B;
* 若类E实现了接口B中所有抽象方法,那么类E就可以实例化。
* 若类E未实现接口B中的所有抽象方法,那么类E就是一个抽象类。
* 6.类可以实现多个接口
* 7.接口封装了一定的功能,提供了解决问题的规范
8.接口与其具体的实现类之间存在多态性 比如:Runner runner = new Duck();