JAVA基础(十二)抽象类与接口
抽象类 总结: ??????????????? 类支持单继承。接口支持多继承 ??????????????? 类与类单继承, ??????????????? 类实现接口,接口继承接口,先继承后实现 ? ?? 自己理解? 抽象类:描述笼统的,模糊,不具体的具有共性的类? 抽象类格式 Public abstract class 类名{ 成员变量 //方法 public abstract 返回值类型 方法名 (参数); Public abstract void get ();//抽象函数。需要abstract修饰,并分号;结束 } ? ? 1.1????? 抽象类的特点:???????????????????????? 1、抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。 ???????????????????????? 2、抽象类不可以直接创建对象,原因:调用抽象方法没有意义。 ???????????????????????? 3、只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。 ????????????????????????? 4. 之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单。 ? 抽象类? 思想 ?????????????? ? ? ? 1.抽象类一定是个父类,因为抽象类需要其子类覆盖所有的抽象方法,才可以对子类进行实例化对象 ? ? ? ? ? ? ? ? ? ? ? 2.抽象类中可以不定义抽象方法。???????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????? 3. 一旦一个类继承了抽象类,。? ? ? ? ? ? ? ????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????? 3.1? 子类要么重写父类的方法,明确其功能 ?????????????????????????????????????? 3.2???? 要么继续抽象下去 ? ? ?? 1、private: ??????????????? 私有的方法子类是无法继承到的,也不存在覆盖,而abstract和private一起使用修饰方法,abstract既要子类去实现这 ? ? ? ? ? ? ? ? ? ? ? ? ?? ???? 个方法,而private修饰子类根本无法得到父类这个方法。互相矛盾。 ???????????????????????????????????????????? 2、final,暂时不关注? 3、static,暂时不关注 ? 抽象类与普通类的区别 抽象类:??????????? 1.既可以定义抽象方法,也可以定义一般方法 ?????? ? ? ? ? ? ? ? ? ?? ?? 2.不可以实例化???????????????????????????????????????????? ?????????????????????????? 3.描述的事物可能信息不足??????????????????????????? 普通类:?????????? 1.只能定义普通方法 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? ???????????????????? 2. 可以实例化 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???????????????????? ? ?? 3. 描述的事物很详细?????????????????????????????????????? ? ?????????????????????????? 接口 自己理解 ????????????????? ? ?? 抽象类是现实事物的描述(模糊描述共有的特点); ????????????????????? 接口是额外功能的集合 建立接口定义格式:interface?? 关键字 public interface 接口名 { 抽象方法1 抽象方法2 抽象方法3; } 伪代码 public interface Drink { //抽象方法 public abstract void drink(); } ?????????????????????????? 使用interface代替了原来的class, ?? 其他步骤与定义类相同: ?? ? ? ? ? ? ? ? ? ? ?? 1.? 接口中的方法均为公共访问的抽象方法 ? ? ? ? ? ? ? ? ? ? ? ? 2.? 接口中无法定义普通的成员变量 ?类实现接口class 类 implements 接口 { 重写接口中方法 } 例子 class 子类 extends 父类 implements 接口 { 重写父类中方法 重写接口中方法 } 伪代码 public class student implements smoking,Drink(接口支持多继承){ ( 重写接口中方法) public void smoke() { System.out.println("学生"); } ? ? 成员特点: ??????????????????? 1、接口中可以定义变量,但是变量必须有固定的修饰符修饰,public static final 所以接口中的变量也称之为常量 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 其值不能改变。后面我们会讲解static与final关键字 ???????????????????? 2、接口中可以定义方法,方法也有固定的修饰符,public abstract ??????????? ? ? ???? 3、接口不可以创建对象。 ??????????????? ? ? ? 4、子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化。否则子类是一个抽象类。 ? 总结:接口在开发中的它好处 1、接口的出现扩展了功能。 2、接口其实就是暴漏出来的规则(方法)。 3、接口的出现降低了耦合性(融合度),即设备与设备之间实现了解耦。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |