6.Java面向对象第六章 抽象类和接口

5.Java面向对象 抽象类和接口

文章目录

  • 5.Java面向对象 抽象类和接口
      • 一、
        • 1.抽象类VS普通类
        • 2.抽象方法VS普通方法
        • 3.抽象类与抽象方法的使用
      • 二、接口
        • 1.必须知道的接口特性
        • 2.定义接口
        • 3.接口使用
      • 三、抽象类vs接口
        • 相同点
      • 不同点
      • 多用组合,少用继承针对接口编程针对扩展开放,针对改变关闭
      • 多用组合,少用继承针对接口编程针对扩展开放,针对改变关闭

一、

1.抽象类VS普通类

抽象类不能被实例化

但可以创建一个引用变量,其类型是一个抽象类,指向非抽象的子类实例

普通类可以被实例化

2.抽象方法VS普通方法

有无方法体

3.抽象类与抽象方法的使用

抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象类

如果子类没有实现父类的所有抽象方法,子类必须被定义为抽象类

没有抽象构造方法,也没有抽象静态方法抽象类中可以有非抽象的构造方法,创建子类的实例时可能调用

二、接口

接口是一种约定

接口是一种能力

1.必须知道的接口特性

接口不可以被实例化

实现类必须实现接口的所有方法

实现类可以实现多个接口

implements、多个接口使用逗号隔开

接口中的变量都是静态常量(public static final)

2.定义接口

使用interface关键字

/**
*锁接口
*/
public interface Lock{
    public abstract void lockUp();//上锁
     public abstract void openLock;//开锁
} 
3.接口使用

使用implements关键字,多个接口使用逗号隔开

/**
*防盗门
*/
public class FdDoor extends Door implements Lock,DoorBell(){
    public void open(){
        System.out.println("uegfuegv");
    }
}

三、抽象类vs接口

相同点

代表系统的抽象层

都不能被实例化

都能包含抽象方法

用于描述系统提供的服务,不必提供具体实现

不同点

在抽象类中可以为部分方法提供默认实现,而接口中只能包含抽象方法

抽象类便于复用,接口便于代码维护

一个类只能继承一个直接的父类,但可以实现多个接口

多用组合,少用继承针对接口编程针对扩展开放,针对改变关闭

,而接口中只能包含抽象方法

抽象类便于复用,接口便于代码维护

一个类只能继承一个直接的父类,但可以实现多个接口

多用组合,少用继承针对接口编程针对扩展开放,针对改变关闭

你可能感兴趣的:(Java面像对象,java,开发语言)