关于Java中的接口和抽象类的区别

1、接口比抽象类更加高级

抽象类说一千到一万也是一个类,只能单继承,public abstract class ChouXiang  

接口,可以多继承,public interface PassInterface ,接口比抽象类还有抽象

2,定义的方法的区别

接口中的方法必须都是public  绝度没有方法体  

抽象类中的方法 可以是private但是需要方法体,private是子类看不到的,

The abstract method XXX in type ChouXiang can only set a visibility modifier, one of public or protected

抽象的方法 只能为public 和protect  

相同点:接口中的方法和抽象方法都不能为static

3成员变量

接口中的成员变量都为public static final ,为什么会是 static final,一会再解释,

抽象类中的方法可以为 private  public protect

4 构造方法

接口中不存在构造方法

抽象类中有构造方法  如果构造方法为私有,那么就不可以继承它

5接口和抽象类到底如何通俗的比喻??

接口可以比喻成星球,它是纯天然,它的变量是纯天然的属性,不可修改,一旦实现它 就必须实现它所有的方法,

抽象类可以比喻成树木,它虽然为抽象的,但是也有一种形态,一旦一个类继承它,则会有它的形态,不是私有的属性可以任意修改

6继承只能单继承,实现可以实现多个接口(多继承有很多弊端,而接口则可以避免,比如方法重名,变量重名等等)

7接口中变量有什么用?

接口中的变量好比这个接口的属性,你实现这个接口就拥有这个属性,这个纯天然的属性是不允许改变的,

8接口实现类向上转型和继承抽象类向上转型是不同的

接口向上转型:准确的说是接口回调,主要是调用方法的实现,我们不用操心实现类还有什么东西,接口和实现类并没有多大的管理,接口的变量只是通知实现类调用某个方法

继承抽象类向上转型:抽象类的引用和继承类的关联是相当大的,调用方法就是直接调用重写的方法


接口更多的应用是起到统一规范、回调的作用

继承很多的是整个系统关联关系的作用。


public interface PassInterface {

	
	 String my="My"; //默认 public static final 唯一
	 String getA();  //默认public  唯一
}
public interface ToInterface {

	String my="my";
	public String getC();
}


public abstract class ChouXiang {

	private String my;  //public protect private 都可以
 	
	public abstract String getD();   //继承时必须重写的
	 
	static void getN(){ 方法也比较随意
		
	}; 
     public abstract String getA();
	private String getM() {
		

		return null;
	}
}

public class Pass  extends ChouXiang implements PassInterface,ToInterface{
    
    public void getW(){
    	
    }
	
	@Override
	public String getA() {
		System.out.println("pass");
	 return PassInterface.my;
	}
	public static void main(String[] args) {
	      
		ChouXiang chou=new Pass();
		
		chou.getA();
		
		PassInterface ps=new Pass();
		ps.getA();
		
	}

	@Override
	public String getC() {
	
		return ToInterface.my;
	}

	@Override
	public String getD() {
		// TODO Auto-generated method stub
		return null;
	}
	

	
}


接口的方法和抽象类中的方法可以同名,调用时不同引用调用的是同一个实现方法





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值