zoukankan      html  css  js  c++  java
  • java面向对象,继承

    1:为什么使用继承?

    将重复代码 抽取到父类中,方便修改代码,减少代码量 

    2:如何使用继承?

    使用继承

    编写父类            class Pet { //公共的属性和方法 }

    编写子类,继承父类                  class Dog extends Pet { //子类特有的属性和方法 }

    理解继承

    子类 访问父类成员       

    访问父类构造方法                 super();                  super(name);

    访问父类属性                 super.name;

    访问父类方法                    super.print();

    3:子类可以继承父类的所有些资源吗?

    不能被继承的父类成员:private成员,

    子类与父类不在同包, 使用默认访问权限的成员,构造方法

    4:访问修饰符              private             friendly(默认)          protected            public

          本类                             T                        T                            T                        T

          同包                             F                        T                            T                        T 

          子类                             F                        F                            T                        T

          其他                             F                        F                            F                        T

    5:多重继承关系的初始化顺序是怎样的?

    父类属性——父类构造方法——子类属性——子类构造方法

    6:何时使用继承?

    继承与真实世界类似(符合is-a关系的设计使用继承 ),

    继承是代码重用的一种方式(将子类共有的属性和行为放到父类中)

    7:方法重写的规则

    方法名相同   参数列表相同    返回值类型相同或者是其子类     访问权限不能严于父类

    8:方法重载和方法重写:

                     位置          方法名        参数表                 返回值                          访问修饰符

    方法重写:子类           相同           相同           相同或者是其子类           不能比父类更严格

    方法重载:同类           相同          不相同                  无关                                  无关

    PS :构造方法不能被继承所以不能被重写。

    9:super关键字来访问父类的成员

               super只能出现在子类的方法和构造方法中

               super调用构造方法时,只能是第一句

               super不能访问父类的private成员

    10:抽象类:实例化对象没有意义的类。

                 Java中也使用抽象类,限制实例化

    11抽象方法:

    abstract也可用于方法——抽象方法

    抽象方法没有方法体 抽象方法必须在抽象类里

    抽象方法必须在子类中被实现,除非子类是抽象类

    12:final用法

    Penguin类不希望再被其他类继承     使用final类

    方法不希望被重写     使用final方法

    属性值不希望被修改     使用常量

    final修饰符:

    修饰的类,不能再被继承

    修饰的方法,不能被子类重写

    修饰的变量将变成常量,只能在初始化时进行赋值

  • 相关阅读:
    5-4 链表的天然递归结构性质
    java8 Optional 解析
    [leetcode] Unique Binary Search Trees
    [leetcode] Anagrams
    [leetcode] Valid Number
    构造素数表2
    构造素数表1
    整型所占字节
    习题7-8 字符串转换成十进制整数
    习题7-7 字符串替换
  • 原文地址:https://www.cnblogs.com/zjx-959/p/13036660.html
Copyright © 2011-2022 走看看