抽象类:作用:可以作为一个“模板”来规定子类必须实现的方法。抽象类不能实例化对象,用于继承。类前加abstract关键字修饰。
抽象方法:抽象方法需要加abstract修饰。若有子类继承这个抽象类的时候,子类中必须实现父类中的抽象方法。抽象类中可以定义各种变量、常量、方法,从这里看抽象类强于接口。
抽象类和接口非常相似:
里面都有abstract修饰的抽象方法。抽象类中可以定义变量,也可也定义常量,还可以定义普通的方法,对于接口里面只能定义常量和抽象方法。
接口比抽象类优秀的一点是可以突破单继承的限制。接口和抽象类一般用作模板,其里面定义一些抽象方法,其子类必须实现这些抽象方法。
两者都相当与一种对代码的限制和规范:
不过接口对代码的限制更加严格----------相当于两个人一起做个什么项目,首先定义一个接口,分工去按照接口的要求去做
最后再把两者的代码整合在一起,一个完整的项目就生成了
而抽象类则就更像一个模板了------------------------将一类事物的共同的特点整合在一起-----再从这个抽象类中去具体的实现一个
通过接口让这个类具有不同的功能
interface Person {
static final int data=12;
static final String name="zhang";
boolean bark(); //在Java中的方法默认都是抽象方法
//并且可以有private去修饰抽象方法但是必须要有身体,在其他语言中如php中则不能被private修饰
}
public class Demo implements Person{
public static void main(String[] args) {
System.out.println("hello world");
}
public boolean bark(){
System.out.println("hello");
return false;
}
}