1.抽象类
(1)抽象方法:由abstract修饰的方法是抽象方法,只有方法的定义,没有方法体
语法:修饰abstract返回值类型 方法名([参数列别]);
(2)由abstract修饰的类是抽象类,属于不完整的类,该类不能实例化,抽象类中可有抽象方法也可以有具体的方法,也可以只有抽象方法或具体方法,根据业务需求来定
(3)一个具体类如果继承一个抽象类,必须实现该抽象类中所有的抽象方法。
(4)Final和abstract不能同时修饰类,因为final修饰的类不能被继承,而定义抽象类就是被继承的,两者互相矛盾,所以不能一块修饰类
2.接口:制定统一规范
电脑厂商:usb接口
手机充电线,u盘,摄像头
(1)接口由interface定义
(2)接口中所有的属性都是常量,默认是public static final修饰的
(3)接口中的方法都是抽象方法,并且都是public abstract修饰的,接口中不能定义构造器,接口不能实例化
(4)子类如果实现接口用关键字implements,并且必须实现接口中所有的抽象方法,如果子类也是接口的话,用extends关键字
(5)子类可以实现多个接口,多个接口之间用逗号分隔
3.抽象类和接口区别
共同点:都可以有 抽象方法,都不能被实例化,可以被继承
不同点:(1)类的修饰不一样,抽象类是用abstract修饰,接口用interface修饰
(2)抽象类中的属性没有任何限制,接口中所有的属性都是常量,并且默认都是public static final修饰的
(3)抽象类中的方法可以是抽象方法也可以是具体的方法,接口中的方法都是抽象方法,并且默认是public
abstract修饰的
(4)抽象类中可以定义构造器,接口中不能定义构造器
(5)一个类可以实现多个接口,多个接口之间用逗号分隔,但是一个类只能继承一个抽象类