抽象,接口与实现

java学习笔记
抽象,接口与实现

前言

这里是我在学习接口时,对知识的一些思考和总结,可能不是很专业,只是为了能够更好的理解,或许还会有一些错误,但还请谅解和纠正,谢谢

一、接口是什么?

接口可以理解为类似于类,是一种高于抽象类的类,抽象的抽象类,相当于手机里的文件夹,将彼此没有关系的多个方法包括起来,由使用者来定义这个接口的作用,使用时只需要在接口里面声明想要使用的方法,相当于规定条例,这个接口能干嘛,接口要使用还必须用(implement)来实现,接口中的声明是抽象的,要想实际使用还得规定方法具体怎么用,也就是创建方法。

二、为什么要用接口?

java中规定类只能有一个父类,即只能继承一个父类的属性和方法,比如父只能继承爷爷的特征,孩子只能继承父的特征,但不能继承爷爷的特征。
为什么呢?在Java中extends继承时用super关键字来继承,
super();
这里的super就是调用父类方法,那如果父类中有多个方法,怎么区分呢?
super后面的括号里加入变量值,java会自动识别是哪个方法;
但如果要实现多个继承,如果用super关键字,比如要调用父类和父类的父类的某个方法,用一个super根本无法区分要用的是哪个,于是就有了接口:
i
nterface x1具有a特性
interface x2具有c,d特性,继承interface x1。于是x2就具有a,c,d特性
interface x3具有f特性,继承x2,于是x3就具有了x1,x2,x3的所有特性

三、怎么用?

public interface xx1 [extends 父接口xx]{//接口声明
	域类型 域名=常量值
	返回值 方法名//接口体,即此接口包含的方法
}
class 类名 implements xx1 {
	定义xx1中声明的方法
}

四、举个例子

这也是在学习是老师布置的一个作业,能很好地说明


public interface Biology {
	abstract void breath();
}
interface Animal extends Biology{
	abstract void move();
	abstract void eat();
}//动物
interface Mankind extends Animal{
	abstract void study();
	abstract void think();
}//人类
//普通人的实现
 class NormalMan implements Mankind{
	public void move() {
		System.out.println("我会行走");
	}
	public void eat() {
		System.out.println("我会吃东西");
	}
	public void breath() {
		System.out.println("我会呼吸");
	}
	public void study() {	
		System.out.println("我会学习");
	}
	public void think() {
		System.out.println("我会思考");
	}
	public NormalMan() {
	}//无参构造函数
	private String name;
	public NormalMan(String name) {
		System.out.println("我叫"+name);
	}//有参构造函数
 }//实现所有接口
 /*当然还有其他类型的人,在实现时改变这些方法的方法体就行*/

测试一下

public class Test {
	public static void main(String[] a) {
		NormalMan man =new NormalMan("小爱");
		man.breath();
		man.eat();
		man.move();
		man.think();
		man.study();	
		}
}

结果

我叫小爱
我会呼吸
我会吃东西
我会行走
我会思考
我会学习

四、总结

接口的产生就是为了实现多重继承。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值