Java基础课程---权限修饰符

1 java  权限修饰符

     从小到大

  private 只有类中能用

 

  缺省,类,同一个包中能用

 

   protected,类,同一个包中能用,以及不同包中的子类可以使用

 

   public:公共的,都可以使用,同一个工程下。

 

2 java 继承的应用

     1 减少了代码的冗余

     2 便于扩展功能

     3 为多态提供支持

     父类中声明为私有的属性或者方法,子类继承父类以后,仍然认为

     获取了父类中中似有的结构,只是因为封装性的影响,使得子类

    不能直接调用父类的结构而已。

 

3 super调用构造器

    1。我们可以在子类的构造器中显式的使用 super()的方式 调用父类中声明的指定构造器

    2。super(形参列表) 的使用,必须在子类构造器的首行。

    3。我们在类的构造器中,针对 this(形参列表) 或者 super(形参列表) 只能二选一,不能同时出现,

    4。在构造器的首行,没有显式的声明 this()或者super() 则默认调用的是父类中空参的构造器

    5。在类的多个构造器中,至少有一个类的构造器使用了 super()调用父类的构造器。

  

4 字类对象实例化的过程

     

 

 

5 java 多态性

   1 何为多态性

      : 父类的引用指向了字类的对象,(或者,子类的对象指向父类的引用)

   2 多态的使用:虚拟方法的调用

    有了对象的多态性以后,我们在编译期间,只能调用父类中的方法,但是在运行期间 

,我们实际执行的是子类重写父类的方法,

    总结:  编译看左边,运行看右边,

    注意: 多态创建的对象,是不能调用子类特有的方法的,因为在编译期间当作是父类的对象。

    3 :多态性的使用前提

          1 类的继承关系

          2 方法的重写。

   4 : 多态性的好处?

           可以减少代码的重复,是代码更规范,

 

   5 :多态性只适合用于 方法,不适合用于 属性(编译和运行都看左边)

 

   6,有了对象的多态以后,内存中实际上是加载了子类特有的属性和方法的,但是由于

        变量声明为父类类型,导致编译时,只能使用父类声明的方法和属性,子类特有的方法和属性不能调用。

 

   7 :如何调用子类的特有方法和和属性?

          向下转型(强制类型转换),使用强转可能出现异常,在强转时,判断。关键字 instance of

 

   8 : 1 若子类重写了父类方法,就意味着子类里定义的方法彻底的覆盖了父类的同名方法,系统将不可能把父类里的方法转移到子类只去。

          2  对于实例变量则不存在这样的现象,即使子类里定义了与父类完全相同的实例变量,这个实例变量依然不可能覆盖父类中的定义的

             实例变量:编译看左边,运行看右边。

 

   9: 多态时编译时行为,还是运行时行为?

         运行时行为。

   10 ,知识点,如下代码方法中,认为是一样的会报错,,如果其中一个方法在父类中,则认为子类重写了父类的方法。

    

    
    // 父类
    class Demo{
        public void add(int a,int ...arr){
            
        }
            
    }
    class Demo2 extends Demo{
        // 认为重写了父类中的方法
        public void add(int a ,int [] arr){
            
        }
    }

 

posted @ 2019-05-06 19:50  行走的翅膀  阅读(159)  评论(0编辑  收藏  举报