继承通过extends关键字来实现。修饰符如果是public,则该给类在整个项目中可见;若无public修饰符,则该类只在当前包可见,不可以使用private和protected修饰类。
方法重写的规则:1.方法名相同 2.参数列表相同 3.返回值类型相同或是其子类 4.访问权限不能严于父类
位置 | 参数表 | 返回值 | 方法名 | 访问修饰符 | |
重写 | 子类 | 相同 | 相同或使其子类 | 相同 | 不能比父类更严格 |
重载 | 同类 | 不相同 | 无关 | 相同 | 无关 |
不能被继承的父类成员:1.private成员 2.子类与父类不在同包,使用默认访问权限的成员 3.构造方法
super:1.super关键字来访问父类成员 2.super只能出现于子类的方法和构造方法中 3. super调用构造方法时只能是第一句 4.super不能访问父类的私有成员
访问权限由小到大:private------>friendly------->protected----->public
抽象方法特点:抽象方法没有方法体 2.抽象方法必须在抽象类里 3.抽象方法必须在子类中被实现,除非子类是抽象类
抽象类和抽象方法的特点:
1.都通过abstract关键字来修饰
2.抽象类不能实例化 抽象类中可以没有、有一个或多个抽象方法,甚至全部方法都可以是抽象方法
3.抽象方法只有方法声明,没有方法实现。有抽象方法的类必须声明为抽象类。子类必须重写所有的抽象方法才能实例化,否则子类还是一个抽象类。
用final修饰的类,不能再被继承。
用final修饰方法,不能被子类重写。
用final修饰的变量将变成常量,只能在初始化时进行赋值,不能在其他地方修改。