接口 和抽象类

一、接口

1、接口可以继承接口,不能继承类

public interface InterfaceTest{
	public void name(String name);
}

public interface Interface1 extends InterfaceTest {

	void interface1_function(int a);
}

public class MainTest implements Interface1 {

	@Override
	public void name(String name) {
		// TODO Auto-generated method stub

	}

	@Override
	public void interface1_function(int a) {
		// TODO Auto-generated method stub

	}

}

二、抽象类

1、抽象类A可以继承具体类B,也可以实现接口C,可以实现接口中的方法,也可以不用实现

而另一个类D去继承该抽象类A时,需要重写接口C中所有的方法,和至少一个B中的方法

public class MainTestB {
	public void name() {

	}
	public void name2() {
		
	}
}
public abstract class AbstractA extends MainTestB implements Interface1 {
	
	//可实现也可不实现,若实现后,后续将不用再实现
	@Override
	public void interface1_function(int a) {
		// TODO Auto-generated method stub

	}
        public static void hello(){//抽象类中也可以有静态方法
		
	}

}
public class TestD extends AbstractA{


   //若在抽象类中已经实现,将不用再实现该方法
	/
	@Override
	public void interface1_function(int a) {
		// TODO Auto-generated method stub
		
	}
	///

	@Override
	public void name(String name) {//B中的方法至少重写一个
		 Abstract1.hello();//调用静态方法		
}}

抽象类中可以有具体的方法

public abstract class Abstract1  {
	void func1(){
		System.out.println("111");
	}
	abstract void func2();
	abstract void func3();
	
}
在子类中需重写全部抽象方法
public class Test extends Abstract1{

	@Override
	void func2() {
		// TODO Auto-generated method stub
		
	}

	@Override
	void func3() {
		func1();//直接调用抽象类中的具体方法
		
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值