Java教程

JAVA 接口和抽象类

本文主要是介绍JAVA 接口和抽象类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

JAVA 接口和抽象类

接口

接口可以用USB接口来比喻,USB插口存在于多种不同的产品上,电脑,电视,笔记本之类,而这些产品又有很多品牌,不同品牌享受的系统服务也不同,USB接口就是一个通用点,他们的USB接口都能接U盘和鼠标。由此我们就可以得出结论,接口是一个只要你满足规范约束就能使用一些功能其中所指的约束。

例如我们写一个mouse鼠标在USB接口里,电脑(computer)能用,笔记本(laptop)也可以使用

interface 用于定义接口的关键字

public interface USB(){
	void mouse();
}

引用接口

public class Computer implements USB{
	@Override
	public void mouse() {
		System.out.println("可用鼠标");
	}
}

实现

public class ComputerTEST {
	public static void main(String[] args) {
		USB computer = new Computer();
		computer.mouse();
	}
}

抽象类

· 抽象方法是出现在基类中的一种方法,但要求在派生类中被重写。
· 一个抽象方法只有方法头,没有方法主体
· 包含抽象方法的类就会自动办成抽象类,隐刺必须以abstract关键字声明。
· 抽象方法会被用来确保派生类会实现这个方法
· 若类含有抽象方法,则类必须以abstract关键字声明为抽象类
eg.public abstract class
· 抽象类可以含零或多个普通方法,也可以含零或多个抽象方法
· 不论抽象类是否含有抽象方法,其都不允许实例化,即不能创建抽象类的对象,因为其描述的是抽象概念。它只能作为其他类的基类。
· 若父类是抽象类,且子类不想成为抽象类,则子类必须将父类中所有抽象方法重写为带方法体的普通方法,否则子类仍必须是抽象类。

public abstract people{
	public void run(){
		System.out.println("run");
	}//普通方法
	public abstract void eat();//抽象方法
}

用teacher来继承people来实现eat方法

public class teacher extends people{
	@override
	public void eat(){
		System.out.println("eat");
	}
}

区别

1.成员区别
抽象类:可以有变量、常量、构造方法(抽象方法、非抽象方法都可以有)
接口: 只能有常量和抽象方法。
2.关键字不同
3.修饰符区别
4.关系区别
类与类:属于继承关系,单继承
类与接口:属于实现关系,可以单实现,也可以多实现
接口与接口:属于继承关系,可以单继承,也可以多继承
5添加子方法对子类的影响
在抽象类中添加新方法,提供默认方法,在子类中可以不用修改
在接口中添加新方法,实现该接口的类必须实现这个新添加的方法
6.设计理念区别
抽象类:对类抽象,包括了属性行为
接口:主要对行为抽象

这篇关于JAVA 接口和抽象类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!