JAVA学习抽象与接口

首先了解什么是抽象类/函数

1.抽象函数:表达概念而无法实现具体代码的函数
抽象类:表达概念而无法构造出实体的类
2.抽象函数只有函数头而没有函数体,子类实现这些函数
• 有抽象函数的类一定是抽象类,没有抽象函数的类也可以是抽象类。
• 非抽象类不能包含抽象函数
• 如果一个抽象父类的子类不能实现所有的抽象函数,它必须声明为抽象的。
3.抽象类不能用new制造对象,但是可以定义变量;任何继承了抽象类的非抽象类的对象可以赋值给该变量
4.抽象类可以定义构造方法,可在子类的构造方法中调用。

再了解什么是接口

1.接口是纯抽象类,是一个抽象类型,是抽象函数的集合
2.所有成员函数都是抽象函数
3.所有成员变量都是public static final
4.接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。
5.类描述对象的属性和函数
6.接口则包含类要实现的函数

interface表明其后紧跟着的是接口名; extends表明继承自那些父接口;

接口的实现

/* 文件名 : Animal.java */
interface Animal {
public void eat(); 
public void travel(); 
}
/* 文件名 : MammalInt.java */
public class Cat implements Animal{
public void eat(){
System.out.println(Cat eats"); 
}
public void travel(){
System.out.println(Cat travels"); 
}
public int numOfLegs(){ return 4; }
public static void main(String args[]){
Cat m = new Cat(); 
m.eat(); 
m.travel(); 
} }

注意:

  1. 接口无法被实例化,不能new一个接口的对象出来,但是可以被 实现后,new一个实现接口的类对象出来
  2. 接口类型可用来声明一个变量 。可以是null ;或是去管理一个实现接口的类对象。
  3. 类可以实现多个接口 • 接口不能实现接口

接口的继承

1.接口能继承另一个接口
2.接口的继承使用extends关键字,子接口继承父接口的函数
3.接口可以继承接口,但不能继承类
4.接口允许多继承
5.如果在子接口中定义了和父接口同名的常量,则父接口中的常量被隐藏
6.如果在子接口中定义了和父接口同名的
函数,则父接口中的方法被重写

抽象类与接口比较

1.抽象类和接口都可以用于表达共同特征
2.strong is-a relationship→继承关系→类的继承
3.weak is-a relationship→类属关系,指对象拥有某种属性→接口的实现
例如:
• 学生和人的关系应该用类继承;
• 鼠标、键盘和usb通信接口的关系应该用接口实现
• 可以使用接口避开单重继承的限制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值