Abstract抽象类和Interface接口

一、Abstract抽象类:

  • 抽象方法必须写在抽象类里,但抽象类里可以不实现抽象方法。
 - abstract class student{//创建了一个student抽象类
	//创建了一个抽象方法studentSum()
	public abstract void studentSum();
}	
  • 抽象类无法实例化对象;
  • 父类的抽象方法,在子类中必须被重写(覆写)
    抽象方法:抽象方法没有具体代码块.
    (下面显示的是两个正确的抽象方法创建演示)
public abstract void printcontent() ;
 public abstract String printName(int x);

二、Interface接口:

  • 接口的理解:如果一个抽象类没有字段(成员变量,构造方法,其他普通方法等),所有方法都是抽象方法,那么可以把抽象类改写为接口。(接口就是比抽象类还要抽象的"纯抽象方法"接口
interface PersonB{//接口
	public void runB();//抽象方法一
	public String getNameB();//抽象方法二	
}
  • 接口定义的所有方法默认都是public abstract 的,所以这两个修饰符不需要显示的定义出来(可以不写)上述代码可修改为:
interface PersonB{//接口
	void runB();//抽象方法一
	String getNameB();//抽象方法二	
}
  • 子类只能继承一个类,但可以连接多个接口(实现类)
  • 当一个具体的类要去实现接口(interface)时,需要用implements关键字。
  • 接口的抽象方法在子类中要被全部重写(下篇笔记会讲到重写(即覆写))。
    如:student 子类要继承父类Person,并连接接口:PersonB,PersonC
//子类继承父类并连接了两个接口
class Student extends Person implements PersonB,PersonC {
	@Override//重写 runC()方法
	public void runC() {	
	}
	@Override//重写getName()方法
	public String getNameC() {
		return null;
	}
	@Override
	public void runB() {
		
	}
	@Override
	public String getNameB() {
		return null;
	}
}

在JDK1.8及其更高的版本里,一个接口里可以用default定义默认方法,且实现类可以不必重写(覆写)default 方法,但抽象方法必须全部重写。

interface PersonB{
	//接口不能定义普通方法
//	public void dosth() {
//	} //错误的写法
	//接口可以定义默认方法+default
	public default void dosth() {
	System.out.println("这是一个接口里的default默认方法");		
	}
	//接口不能定义构造方法
//	public PersonB() {
//	
//	}
	//接口只能定义的是常量,
	public int y=11;
}

接口的继承:
一个接口可以使用extends关键字继承另一个接口,
也可"多重继承"很多个接口
//接口之间可以多重继承

//多重继承 Smart接口继承了三个接口,分别为AutoDriver,ConnectNet,AutoChec;
interface Smart extends AutoDriver,ConnectNet,AutoCheck{
	//多重继承接口里也可以添加抽象方法
	public void sari();
}
//自动驾驶接口
interface AutoDriver{
	public void start();
	
	public void stop();	
}
//连接网络接口
interface ConnectNet{
	
	public void connected();
	
	public void disconnect();	
}
//自动检测接口
interface AutoCheck{
	
	public void checkHealth();
}

总结:

接口是基于抽象类的学习,他们的一些显著区别

Abstract抽象类Interface接口
只能继承extends一个类一个类可以implements多个接口,一个接口也可以继承多个接口
可以定义实例字段不能定义实例字段
可以定义其他任何方法可以定义default默认方法
可以使用任意访问修饰符只能使用public 修饰符
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值