抽象类和接口

抽象类

在Java中关键字abstract修饰的类称为抽象类,同样abstract修饰的方法称为抽象方法。

抽象类不能使用new方法进行实例化,是没有具体实例对象的类。抽象类不能直接创建对象,只能通过抽象类派生出新的子类,由子类创建对象。抽象类本身不具备实际功能只能用于其派生子类

抽象类的成员方法可以包括一般方法和抽象方法。抽象方法只声明返回的数据类型,方法名称,和所需的参数没有方法体即抽象方法只需要声明不需要实现。当一个方法为抽象方法时就必须被子类方法重写否则子类方法仍是抽象方法。抽象类中不一定包括抽象方法,但包括抽象方法的类一定被声明为抽象类

例如

package ch01;
abstract class ep1_1{//定义抽象类
	String str;
	ep1_1(String s){//定义抽象类一般方法
		str=s;
	}
	abstract void fruit();//定义抽象方法
}
class ep1_2 extends ep1_1{//定义继承抽象类的子类
	String str;
	ep1_2(String s){
		super(s);//调用父类的构造方法
	}
	void fruit(){//重写父类抽象方法
		System.out.println("苹果");
	}
}

public class eq1_5 {
	public static void main (String[] args){
		ep1_2 Dx = new ep1_2("水果");//创建子类对象
		Dx.fruit();
	}

}

运行结果

苹果

接口

接口是抽象类的一种,只包含常量和方法的定义而没有变量和方法的实现且其方法都是抽象方法

接口用处如下

1.通过接口实现不相关类的相同行为,无需考虑这些类之间的关系

2.通过接口指明多个类需要实现的方法

3.通过接口了解对象的交互界面,无须了解对象所对应的类

接口可多重继承

原文地址:https://www.cnblogs.com/gc56-db/p/6732857.html