Java抽象类、接口

抽象类

	如何定义抽象类?
			语法格式:abstract class 类名{ }
	抽象类的注意事项:
			*抽象类无法被实例化
			*虽然抽象类无法被实例化,但是抽象类也有构造方法。该构造方法是为了给子类创建对象而使用的。
			*抽象类中可以定义抽象方法。
					抽象方法定义格式:
							public abstract void 方法名();(后跟分号)
			*抽象类中不一定要有抽象方法,但是抽象方法要一定在抽象类当中。
			*非抽象类继承抽象类,必须要在子类中将抽象方法实现!否则就会出错。
	abstract关键字不能与private、final、static关键字共存。
		abstract关键字修饰的方法需要在子类中被实现,而private关键字修饰的方法不能被继承,所以二者冲突。
		final修饰的方法不能被重写。这与abstract关键字修饰的方法要重写也冲突。
		static与abstract不能共存。

代码:

public  abstract class abstractTest {
	//Constructor
public abstractTest() {
	System.out.println("a....");
}
//抽象方法
public abstract void m1() ;
	public static void main(String[] args) {
		//抽象类无法创建对象
		//abstractTest abstractTest=new abstractTest();
		//多态
		abstractTest a=new A();
	}
}
//一个类继承了抽象类,如果抽象类中有抽象方法的话,必须在类中将抽象方法实现或者将子类改成抽象类。
class A extends abstractTest{
	public void m1() {
		
	}
	public A() {
		super();//父类的构造方法虽然使用了,但是并没有创建父类对象。
		System.out.println("A....");
	}
}

接口

	接口也是一种引用类型,可以等同看做类。
	接口是一种特殊的抽象类,接口是完全抽象的。
	如何定义接口?
		语法格式:
			[修饰符] interface 接口名{  }
	接口中需要注意的事项:
		*接口中只能出现常量、抽象方法。
		*接口中没有构造方法,接口无法被实例化
		*接口与接口之间可以实现多继承
		*一个类可以实现多个接口
		*非抽象类实现接口,必须将接口中的方法“实现”/“重写”

代码:

public class interFaceTest {
	public interface A{
		//常量(必须用public static final 修饰)
		public static final String SUCCCESS="success";
		public static final double PI=3.14;
		
		//public static final是可以省略的。
		byte MAX_VALUE=127;//常量
		//抽象方法(接口中所有的抽象方法都是public abstract)
		public abstract void m1();
		
		//public abstract是可以省略的。
		void m2();//抽象方法
	}
}
interface B{
	void m1();
}
interface C{
	void m2();
}
interface D{
	void m3();
}
interface E extends B,C,D{
	void m4();
}
//implements是实现的意思,是一个关键字
//implements和extends意义相同。
class Myclass implements B,C{//实现多个接口,也必须将接口中的所有方法全部实现;
	public void m1() {
		
	}
	public void m2() {
		
	}
}

类、接口之间的关系

	类与类之间的关系:
		继承关系,只能单继承,但是可以多层继承。
	类与接口之间的关系:
		实现关系,可以多个接口实现。
	接口与接口之间的关系:
		继承关系,但是可以多继承。
interface B{
	 void m1();
}
interface C{
	void m2();
}
interface D{
	void m3();
}
interface E extends B,C,D{//多继承
	void m4();
}

抽象类与接口的区别

	成员区别:
		抽象类:
			成员变量:变量、常量
			构造方法:有
			成员方法:抽象方法、非抽象方法
		接口:
			成员变量:常量
			构造方法:无
			成员方法:抽象方法
	设计区别:
		抽象类 继承抽象类的子类,是抽象类的一种具体化。
		接口     实现接口的类,具有接口的一种功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值