1.继承(extends )
概念——
当一个类的属性与行为均与现有类相似,属于现有类的一种时,这一个类可以定义为现有类的子类。
概念二
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可,这个类称为父类或者超类
注意:子类具有父类的非私有属性与方法。无需重新定义,可以直接调用。
格式
class 子类 extends 父类{
//父类的非私有方法与属性均继承过来
}
继承的好处
继承的出现提高了代码的复用性。
继承的出现让类与类之间产生了关系,提供了多态的前提。
继承的特点
Java只支持单继承,不支持多继承。即只能有一个父类。
父类可以继续有父类。(可以多层继承)
只有Object类没有父类。
方法重写
当子类继承父类后,拥有了父类非私有的方法并可以直接调用。如果认为父类提供的方法不够强大,
子类可以按照子类自身的逻辑重新定义继承过来的父类方法,这个重新定义一个方法的过程叫做方法重写。
注意事项
访问权限相同或子类方法更大
方法名称必须相同
参数列表必须相同
返回值为基本类型时必须相同
返回值为引用类型时相同或子类小
2.抽象类
抽象方法:抽象方法即只有功能声明,没有功能主体实现的方法 abstract修饰
定义:有抽象方法的类叫做抽象类
抽象定义格式
public abstract class Person {
public abstract void eat();
}
抽象类&抽象方法的使用
抽象类无法直接创建对象,只能被子类继承后,创建子类对象。
子类定义时继承抽象类
抽象类是事物的描述,子类需要继承父类完成最终的功能实现细节(即重写方法,完成方法体)。
将一个抽象方法重写的过程也叫实现方法的过程。
子类定义后创建实例对象
在定义好子类后,可以直接创建对象。
在所有使用子类的地方可以传入子类对象,在所有使用父类的地方也可以传入子类对象,因为属性与方法在子父类中都是相同的。
抽象类的注意事项
有抽象方法的类必须是抽象类,抽象类不能直接创建对象
抽象方法子类必须实现,如果子类不实现,那么子类必须是抽象类
抽象类可以有具体的方法
抽象类可以没有抽象方法
|
|