抽象类
抽象类语法:
[修饰符列表] abstract 类名{
类体;
}
- 抽象类不能实例化对象(创建对象),但能有构造方法,构造方法是供子类使用的。
- 抽象类里不一定有抽象方法,但抽象方法一定在抽象类中。
- 子类继承抽象类,一定要是实现抽象类里的抽象方法。
什么是抽象方法?
抽象方法表示没有实现的方法,没有方法体的方法。
例如:public abstract void doSome();
特点:没有方法体,以分号结尾,前面修饰符列表中有abstract关键字。
public class AbstractTest01 {
public static void main(String[] args) {
Account account=new Zhangsan();
account.with();
}
}
abstract class Account{
//非抽象方法
public void doOther(){
}
//抽象方法
public abstract void with();
}
class Zhangsan extends Account{
@Override
public void with() {
System.out.println("张三账户");
}
}
接口
接口语法:
[修饰符列表] interface 接口名{ }
- 接口是完全抽象的,或者也可以说接口是特殊的抽象类。
- 接口支持多继承,一个接口可以继承多个接口。
- 接口中只包含两部分内容:一个是常量,一个是抽象方法。
- 接口中所有元素都是
public
修饰的,都是公开的。 - 接口中的抽象方法中的
public abstract
可以省略。
interface Math{
/*
public abstract int sum(int a,int b);
public static final double PI=3.1415926;
*/
int sum(int a,int b);
double PI=3.1415926;
}