继承的概念
1. 继承: public class 子类 extends 父类 {
}(继承了成员属性和成员方法, 但是私有的成员属性不能在子类中使用)
2. 继承的好处: 提高了代码的复用性, 提高了代码的编写效率, 使得类与类之间产生了关系, 为多态奠定了前提.
3. 注意: 子类之能继承一个父类,
但父类可以有多个子类.
子类继承父类, 父类再可以继承父类, 子类与父类是一个相对的概念.
所有类的父类为 object,object 包含多种成员属性和成员方法.
4. 子类父类的特点.
成员属性:1子类继承父类, 对同样的属性和方法, 优先使用子类自己的属性, 通过 super 来调用父类成员属性.2子类和父类的成员属性名不一样时, 可以同时使用 (
成员方法:1当在程序中通过对象调用方法时, 会先在子类中查找有没有对应的方法, 若子类中存在就会执行子类中的方法, 若子类中不存在就会执行父类中相应的方法.
5. 为什么子类可以和父类中的方法名一样?
首先, 因为子类和父类的方法不在同一个类中, 所以不是方法的重载; 同时发生在, 子类继承父类中, 从返回值类型, 方法名, 参数列表一致, 则称为方法的重写.
并且子类的修饰符权限大于等于父类的修饰符权限. public 公共的》private 私有的.
方法的重载和方法的重写可以同时存在.
修饰符权限, 不写, 有一个默认权限, 小于 public,
子类和抽象类的区别:
1底层子类都具有具体的方法体
2抽象类一定是父类, 因为只有子类才能创建对象, 从事具体的方法和动作.
3抽象类的存在, 是为了被继承.
4抽象类中可以有普通方法, 但不一定有抽象方法.
抽象类 :abstract class 类名 {}
抽象方法: public abstract 返回值类型 方法名 ();
不能和以下关键字同时存在.
this 和 super
abstract 因为是动态的非常量的, 不能和以下关键字使用:1不能和 private 一起修饰方法.2不能和 final 创建变量.3不能和 static 修饰方法.
但可以按照如下照片内容使用:
- public class Test {
- public static void main(String[] args) {
- new NewPhone().showNum();
- }
- }
- // 手机类
- class Phone{
- public void sendMessage(){
- System.out.println("发短信");
- }
- public void call(){
- System.out.println("打电话");
- }
- public void showNum(){
- System.out.println("来电显示号码");
- }
- }
- // 智能手机类
- class NewPhone extends Phone{
- // 覆盖父类的来电显示号码功能, 并增加自己的显示姓名和图片功能
- public void showNum(){
- // 调用父类已经存在的功能使用 super
- super.showNum();
- // 增加自己特有显示姓名和图片功能
- System.out.println("显示来电姓名");
- System.out.println("显示头像");
- }
- }
- View Code
来源: http://www.bubuko.com/infodetail-3340305.html