JAVA基础(十二)抽象类与接口
抽象类
总结:
类支持单继承。接口支持多继承
类与类单继承,
类实现接口,接口继承接口,先继承后实现
自己理解 抽象类:描述笼统的,模糊,不具体的具有共性的类
抽象类格式 Public abstract class 类名{ 成员变量 //方法 public abstract 返回值类型 方法名 (参数); Public abstract void get ();//抽象函数。需要abstract修饰,并分号;结束 }
1.1 抽象类的特点:
1、抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。
2、抽象类不可以直接创建对象,原因:调用抽象方法没有意义。
3、只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。
4. 之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单
5.、Java抽象类中不能有静态的抽象方法。
6.接口中不能有静态的抽象方法
7.抽象类不一定有抽象方法
抽象类 思想
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、接口的出现降低了耦合性(融合度),即设备与设备之间实现了解耦。