- 继承
在Java中,每个子类只能有一个父类,但可以继承多个接口。
子类继承父类,类定义的时候用extends。
继承接口,用implements。
- 重写
声明为final的方法不能被重写。
声明为static的方法不能被重写,但是能够被再次声明。
子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
构造方法不能被重写
如果不能继承,则不能重写
- 重载
方法能够在同一个类中或者在一个子类中被重载。
- 多态
public interface Vegetarian{} public class Animal{} public class Deer extends Animal implements Vegetarian{}
访问一个对象只能通过引用型变量。引用型变量置为类型相容的值。
Deer d = new Deer(); // d extends Animal and Object, implements Vegetarian Animal a = d; Vegetarian v = d; Object o = d;
- 虚方法
当子类对象调用重写的方法时,调用的是子类的方法,而不是父类中被重写的方法。
要想调用父类中被重写的方法,则必须使用关键字super。
- 抽象类
不能实例化对象。虽然可以有函数有变量。
使用abstract关键字。
如果一个类包含抽象方法,那么该类必须是抽象类。
任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
- 接口
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
在Java中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
接口中所有的方法必须是抽象方法。接口中的方法都是公有的。
接口不能包含成员变量,除了static和final变量。
类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。
接口的继承使用extends关键字
没有任何方法的接口被称为标记接口,作用:1) 建立一个公共的父接口;2) 向一个类添加数据类型。
- 包
包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
包的名字用小写。