Java中抽象类和接口

文章目录


抽象类

产生的原因:父类本身的方法没有实质的内容,存在的目的就只是为了其他的子类进行重写,父类本身也不需要去创建实例
像这种不需要去实例化就可以把这个类作为一个"抽象类"
像这种本身没有方法体,只是为了被子类重写的方法,就可以把这个方法作为一个"抽象方法"

Java中使用abstract关键字来描述抽象类和抽象方法
abstract关键字存在的意义,就是让程序员明确的告诉编译器,这个类就是一个抽象的类,不应该进行实例化,于是编译器就要做好相关的检查工作

抽象方法不需要方法体
抽象方法只能在抽象类中存在(也可以在接口中存在),不能在普通的类中存在
抽象的方法存在的意义就是为了让子类进行重写

abstract public class Shape{
    
    
	abstract public void func();
}

接口

interface
接口是抽象类的更进一步
抽象类只是不能实例化,但是其他各个方面都和普通的类差不多
接口就更抽象了,不光不能实例化,同时也具备类的各种特性
接口中也可以放抽象方法,这里的抽象的方法可以不写abstract,在接口中的方法不能是普通方法(写或者不写,都是抽象方法)
接口中也不能放普通的属性,而是public static final修饰的属性

接口不能继承自其他的类,但是可以 继承其他的接口
接口不能被类继承,而是被其他的类**“实现”**
某个类,实现了这个接口
"implements"

public interface Shape{
    
    
	public static final int num=10;
	abstract public void draw();
}
public class Rect implements Shape{
    
    
	public void draw(){
    
    
		//
	}
}

抽象类和接口的对比:
1.抽象类和普通的类差不多,就是不能实例化,接口和普通的类差别大(属性,方法)
2.一个类只能继承一个抽象类,一个类可以同时实现多个接口

为什么发明接口这样的语法?
解决Java不能多继承的问题

猜你喜欢

转载自blog.csdn.net/Hedenghui777/article/details/121602771