抽象类与接口

抽象方法和抽象类

当一个方法没有具体的方法体和操作实现,则这个方法被称为抽象方法,用abstract修饰

public abstract<returnType><methodName>(...);

抽象类就是不能实例化的类,即没有具体实例对象的类

public abstract class Shape{
//类体

}

特点:

a、抽象类中可以包含任意合法的方法;可以包含任意合法的成员变量,
b、抽象类中的方法必须由子类实现,子类如果没有实现父类的所有的抽象方法,则子类必为抽象类
c、含有抽象方法的类一定是抽象类,但是抽象类不一定含有抽象方法

接口

如果一个抽象类中只有抽象方法,则该抽象类可以被定义为接口,关键字interface,实现类通过implements关键字实现该抽象类中的抽象方法

public interface IMammal{      //定义IMammal接口
//类体

}

public class Whale implements Mammal{    //实现类Whale
//类体

}

特点
a、接口不能创建对象,接口名常常I开头
b、接口中的抽象方法默认为 public abstract 可以省略,但只能是public
c、接口可以继承多个接口,一个类也可以实现多个接口,每个接口之间用逗号间隔

Tip:可以使用instanceof关键字判断对象是不是一个接口的实现类创建的,返回值为true or false

public interface IMammal extends I,II{     //定义IMammal接口继承I,II接口
//类体

}
public class Whale implements I,II{     //定义Whale类实现I,II接口
//类体

}

System.out.println(new Whale().instanceof I);   //结果为true

抽象类和接口的区别

a、定义:抽象类关键字 abstract , 接口关键字interface
b、构造方法:抽象类有构造方法 ,接口没有构造方法
c、继承:抽象类只能单继承 ,接口可以继承多个接口
d、实现:抽象类型用关键字extends ,接口关键字implements
e、成员变量:抽象类可以定义任何合法的成员变量, 接口只能定义public static final的变量即常量
f、方法:抽象类可以定义任意合法方法,接口中只能定义抽象方法,JDK8.0及以上版本可以定义多个static或default修饰的具体方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值