抽象类,抽象方法与接口

抽象类

1.抽象类用abstract修饰 public abstact class A{} //public可省略;
2.一个abstract类,它的方法可以是抽象的方法,也可以是普通方法,
abstact class A{
abstract int min(int x,int y);//抽象方法声明
}
抽象类,抽象方法与接口
可以看到抽象方法不允许有方法体,即只能声明,不能定义;
抽象类,抽象方法与接口
可以声明定义普通方法;
2.abstract类不能创造实例 ,即不存在new A;但是可以声明,如 A a;这为作为父类的abstract类作为上转型对象成为可能.(A 为abstract 类)
3.abstract类也可以没有abstract方法.
4.abstract类的子类必须重写其abstract方法,@override,并给出方法体.
abstract类的子类如果还是abstract类,这个子类可以重写,也可以继承其abstract方法.
5.abstract类可以成为上转型对象.(谁让它可以作为父类呢)

抽象方法与接口

1.接口只能有常量与抽象方法;
抽象类,抽象方法与接口
2.static为类方法,不需要创建对象即可调用,即A.方法名();在接口中依然有效;
deafult 方法与static方法相反,只能通过类的对象调用即new A.方法名();(为什么加了default就可以在接口中定义呢,目前还不知)