抽象类,抽象方法和接口

抽象类

什么是抽象类

含有抽象方法的类

什么是抽象方法

没有方法实现体的方法就是抽象方法

抽象方法关键字:abstract

抽象方法的关键字是abstract 抽象方法没有方法体

public abstract 返回值数据类型 抽象方法名(参数列表);

注意抽象方法没有方法体

抽象类

public abstract class 类名{}

抽象类的使用

1.一个类继承抽象类,那么就会重写抽象类中所有的抽象方法.
2.抽象方法只存在于抽象类或者接口之中

如何使用抽象方法

1.不能直接实例化抽象类,不能直接实例化接口
2.用子类继承抽象类或者实现接口,就能重写里面的抽象方法
3.在测试类里面,创建子类对象,再调用和子类里面重写的抽象方法就能使用抽象方法了
4.子类必须重写抽象类中所有的抽象方法

抽象类注意事项

1.抽象类不能直接实例化.
2.子类继承抽象类,必须冲洗全部的抽象方法
3.抽象类不一定包含抽象方法,但是含有抽象方法的类一定是抽象类

接口

接口:多个类的公共规范,以抽象方法为主
接口的声明格式:

public interface 接口名(){
	//抽象方法
}

接口里面可以放哪些东西

1.常量
2.抽象方法(主要)
3.默认方法(default修饰)(JDK1.8)
4.静态方法(static修饰)(JDK1.8)
5.私有方法(private修饰)(JDK1.9) 主要是供给默认方法和私有方法使用

接口使用步骤

1.接口不能直接使用,只能用一个类来实现接口( implements )

public class 类名 implements 接口名(){}

2.接口的实现类必须重写接口的多有方法,接口没有构造方法,抽象类有构造方法
3.通过实现类对象调用接口的抽象方法

接口使用注意事项

实现类实现接口必须重写接口中所有的抽象方法

默认方法

public default void 方法名(){}//供给子类调用或者只能选择其中之一

1.实现类重写抽象方法
2.重写默认方法不可以省略default
3.如果没有冲洗而默认方法就是继承了
4.实现类实现多个接口,那么遇到默认方法重名就必须重写

静态方法

public static void 方法名(){}

1.静态方法是属于类的,可以通过接口名调用 接口名.静态方法名()

私有方法(JDK1.9)

private void 方法名(){}

1.私有方法只有默认方法才能使用它
2.私有静态方法 默认方法和静态方法都可以使用它
3.如果一个接口有很多默认方法,可以抽取出来

方法重写

1.重写的标记 @Override

继承和实现之间的优先级问题

如果父类中的成员方法和接口种的抽象方法重名,那么就优先执行父类中成员方法的继承

接口的多继承

public class 类名 implements 接口1, 接口2(){}

接口的优点

1.制定规则和格式
2.高内聚,低耦合,方便维护强制要求每个方法单独实现
3.扩展原有功能

接口和抽象类的相同点

1.都含有抽象方法,可以被子类重写
2.不能被直接实例化
3.只能被实现和继承,位于继承的顶端

接口和抽象类的不同点

1.抽象类含有普通成员方法,接口不含有
2.一个类只能继承一个抽象类,但是能够实现很多接口
3.类与类之间单继承,接口与接口之间实现
4.抽象类有构造方法,接口没有构造方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值