Java 接口与抽象类的定义和理解及区别分析

接口与抽象类的定义

接口的定义

接口,是一种规范,是一种特殊的抽象类,它里面所具备的所有方法都是抽象方法,方法用abstract修饰(abstract一般省略不写),接口中的变量全部是public static final所修饰的。

Public interface Write{
		//(访问修饰符)interface(接口名)
}

抽象类的定义

抽象类,是带有(abstract)关键字修饰的类,因为它是一种不具体的概念,不可实例化(不能new),例:

Public abstract class Student{
		//带有abstract关键字修饰的类,注意:不可用new创建对象
}

接口与抽象类的具体区别

接口的特点

  1. 接口可以实现多继承,接口多继承间可以用(子接口名 extends 父接口1,父接口2,父接口3,…)
  2. 接口中的量一定是public static final的(我们可以当作全局常量来看)
  3. 接口中的方法默认为抽象方法,省略去了(abstract)关键字,没有方法体
  4. 接口是一种特殊的抽象类,同样也是不可以实例化的(不能new创建对象)
  5. 接口可以理解为动作或者操作规范
Public interface InputStream{
		//创建一个接口,令它拥有"输入"的规范,输入是一种动作,接口定义的是一种动作
		void write();
		//public abstract void write();
		//接口中的方法都为抽象方法,没有方法体,默认省略了前面的访问修饰符(public private)和 抽象修饰符(abstract)
}
Public interface Display{
		void display();	
}
interface persion extends InputStream,Display{
		//创建了一个persion的一个接口,然后令它继承以上两种该接口,接口之间可以多继承,用的是:extends,接口1,接口2,...;此接口便拥有上述两种接口的所有方法
}
//Public class computer{}
Public class comouter implement InputStream,Display{
		//创建一个“电脑”的一个类,我们去实现上面接口中的方法,用 implement 接口1,接口2,...
		void write(){
		//因为接口中为抽象方法,所以要重写方法
		System.out.println("已执行录入命令,可以写入!");
		}
		void display(){
		System.out.println("已执行显示命令,已展现当前内容!");
		}
}
Public class Operation extends Compter{
	public static void main(String[] args){
	//创建一个实现类,来测试接口的实现
	write();
	//已执行录入命令,可以写入!
	display();
	//已执行显示命令,以展示当前内容!
	}
}


抽象类的特点

  1. 抽象类中的方法可以是抽象方法,也可以是其他方法
  2. 抽象类中的变量也可以包含非final的变量
  3. 抽象类是一种概念,不可以实例化
  4. 抽象类实现的是事物本身的本质
  5. 抽象类作为父类时,其他子类可以重写其内部的方法,来调用抽象方法
Public abstract class Animal{
		//创建一个动物的抽象类,指向的是事物本身
		public abstract say();
		public abstract name();
		public abstract color();
}
Public class Cat extends Animal{
		//继承Animal,并重写里面的方法
		void say(){
		System.out.println("喵喵喵!");
		}
		//实现一下:
		public static void main(String[] args){
		say();
		//输出:喵喵喵!
		}
}

抽象类与接口的区别

在上述的特点中,我们可以清晰地看出抽象类接口的异同,接口在运用时更像是一种规范,可以有无数的类去实现,而抽象类运用时能直观的表达出事物所具有的特点,就像上面的猫(Cat)类,猫的声音是:喵喵喵,我们在调用父类(Animal)的say方法,所以我们能跟清晰的对猫有一个更具体的一个了解,如果将父类所有的方法都实现了,那么子类便可以创建对象实例化。

抽象类及抽象方法

如果想更好的了解抽象类及抽象方法可以查看这篇文章点此跳转

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值