抽象类
1.有些类不应该被初始化。
2.当设计继承结构时,必须决定哪些类是抽象的,哪些类是具体的。具体的类是实际可以被初始化为对象的。
3.设计抽象类的方法:在类的声明前面加上关键词abstract。
4.抽象类代表没人能创建该类的实例,可以使用抽象类来声明为引用类型给多态使用,却不用担心创建出该类型的对象,编译器会确保这件事。
5.抽象类除了被继承过之外,是没有用途、没有值、没有目的的。
抽象方法
1.方法也可以标记为abstract的,抽象方法必须被覆盖。
2.抽象的方法没有方法体,应该直接以分号结束,如:
public abstract void eat();
注意:如果方法声明为抽象的,则类也应该标记为抽象,不能在非抽象类中拥有抽象方法。
抽象方法的意义: 无法为所有子类定义出一个有实际意义的共同代码时,就算无法写出具体实现,也还是可以定义出一组子类共同的协议。
3.在继承树结构下的第一个具体类必须实现所有抽象的方法。
Object
1.在Java中的所有类都是从Object这个类继承出来的。
2.没有直接继承过其他类的类会是隐含的继承对象。
3.Object不是抽象类。
4.当某个对象是以Object类型来引用时,Java会把它当做Object类型的实例,这代表只能调用由Object类中所声明的方法。
5.任何从ArrayList<Object>取出的东西都会被当做Object类型的引用,不管它原来是什么。
接口
定义: Java的接口就好像是100%的纯抽象类。接口中的所有方法,都是未实现的抽象方法。
public interface Pet{...}
1.接口的方法必须是抽象的。
2.不同继承树的类也可以实现相同的接口。
3.类可以实现多个接口。
4.要从子类调用父类的方法可以与super这个关键词来引用,如:
super.RunReport();