Java抽象类与接口的区别

/*
 * 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另外一种形式定义和表示,就是 接口 interface
 *
 * 对于接口当中常见的成员,而且这些成员都是固定的修饰符
 * 1.全局变量:public  static final
 * 2.抽象方法 public abstract
 * 由此得出结论,接口中的成员都是公共的权限
 */
/*
 * 定义接口
 */
interface Demo{
    public static final int NUM = 4;
    public abstract void show1();
    public abstract void show2();
}
/*
 * 类与类之间是继承关系,类与接口之间是实现关系
 */
/*
 * 接口不可以实例化
 * 只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化,否则,这个子类就是一个抽象类
 */
class DemoImpl implements Demo{

    public void show1() {
        
    }

    public void show2() {
        
    }
    
}
/*
 * 在Java中不直接支持多继承,因为会出现调用的不确定性
 * 所以Java将多继承机制进行改良,在Java中变成了多实现
 * 一个类可以实现多个接口
 */

/*
 * 接口的出现避免了单继承的局限性
 */
/*
 * 接口与接口之间是继承关系,而且接口可以多继承
 * 类与类直接是继承,单继承
 * 类与接口是实现,可以多实现
 */
/*
 * 接口的特点
 * 1.接口是对外暴露的规则
 * 2.接口是程序的功能扩展
 * 3.接口的出现降低耦合性
 * 4.接口可以用来多实现
 * 5.类和接口之间是实现关系,而且类可以继承一个类的同时实现多个接口
 * 6.接口与接口之间可以多继承
 */
/*
 * 接口与抽象类的区别
 * 相同点:都是不断向上抽取而来的
 * 不同点:
 * 1.抽象类需要被继承,而且只可以单继承.接口需要被实现,可以多实现
 * 2.抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法.接口中只能定义抽象方法,必须由子类去实现
 * 3.抽象类的继承,是is a 关系.在定义该体系的基本共性内容.
 *    接口的实现是 like a关系.在定义额外功能.
 * 4.
 */
public class InterfaceDemo {

    public static void main(String[] args) {
        
        DemoImpl d = new DemoImpl();
//        System.out.println(d.NUM);
        System.out.println(DemoImpl.NUM);
        System.out.println(Demo.NUM);

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值