首页 > 代码库 > Java面向对象之继承
Java面向对象之继承
Java中的继承:
首先,我们要理解什么时候用继承:继承的子类和父类是is-a的关系,例如:Apple is a fruit。将fruit作为父类,apple作为fruit的一个子类。
继承的语法:
<访问修饰符> 子类类名 extends 父类类名{ 子类属性; 子类方法;};
当我们使用继承时,父类除了构造方法外,其他的都可以被子类继承。
super的使用:
调用父类的构造方法、属性和方法;调用构造方法的格式为:super();调用属性和方法的格式为:super.属性/方法;
在调用构造方法的时候,super()放在子类的构造方法里,并且放在第一行;调用父类的属性和方法则没有限制,但还是要放在子类的属性和方法里面。
方法的重写:
重写的含义:即子类中提供一种方法,名字与父类的方法名完全相同,但是实现是不同的,在调用到该方法时,代替父类的方法被执行。
方法重写的3个条件:
(1)方法的重写是发生在继承关系中的;
(2)子类的方法名和父类一致;
(3)子类方法的访问权限必须大于等于父类方法的访问权限。
final类:
如果将一个类定义成final类,那么这个类将不能被继承。
语法:
<访问修饰符> final class 类名{ };
抽象类:
抽象类是用abstract关键字修饰的类。
语法:
<访问修饰符> abstract class 类名{ };
抽象类要注意一下三点:
(1)抽象类不能被实例化;
(2)抽象类里面可以有抽象方法和普通方法;
(3)抽象类必须被继承才能使用,子类必须实现抽象类中的抽象方法,除非子类也是抽象类。
Java中的访问修饰符:
访问修饰符 本类 子类 不同包中的子类 不同包的非子类
public Y Y Y Y
protected Y Y Y N
default Y Y N N
private N N N N
Java面向对象之继承