zoukankan      html  css  js  c++  java
  • java 多态和内部类

    接口跟接口之间存在继承关系

    一个接口可以继承多个接口

    一个非抽象类:必须实现接口中的所有方法

    一个抽象类实现接口  可以不实现接口中的方法  但是继承与抽象类的类必须要是实现接口中的方法

    多态:一个对象的多种表现形态(父类的引用类型变量指向了字类的对象)

    多态的满足条件  必须有继承关系 必须重写父类的方法

    多态的使用注意点:

    1. 多态情况下:子父类同名的成员变量 ,默认访问父类中的成员(不管是普通还是静态成员变量)变量
    2. 多态情况下:子父类存在同名的非静态方法 ,访问的是子类的非静态方法
    3. 多态情况下:子父类存在同名的静态方法 ,访问的是父类的静态方法
    4. 在多态情况下 不能访问子类特有的成员变量和方法

    总结:多态情况下  子父类存在同名的成员(成员指的是成员变量和方法(方法包括静态方法和普通方法)),访问的都是父类  除了同名的非静态方法是访问子类

    Java编译器原理:

    编译看左边   执行不一定看右边

    编译看左边:java编译器在编译的时候会检测引用类型中是否含有指定的成员,如果没有就会报错

    多态的使用场景:

    1.多态可以用于做形式参数,可以让方法接受更多的类型

    2.多态用于返回值类型   可以返回更多的数据类型

    多态的另一种表现形式:

    接口的引用类型指向实现类

    实现关系下的多态:

    接口 变量 =new 接口实现类();

    内部类:一个类中定义另外一个类 ,这样的类叫内部类

    内部 的文件名: 外部类名$内部类名

    内部类分两种

    1. 成员内部类

    如何访问成员内部类:

    方式1:在外部类中定义一个方法创建内部类对象,再在通过对象进行访问

    方式2:直接在其他类中创建内部类对象,直接通过对象访问

        格式:

          外部类 . 内部类  变量名 = new 外部类(). New 内部类();

    内部类的使用注意点:

    1. 如果外部类和内部类中有同名成员变量,在内部类中java虚拟机默认访问内部类中的成员变量 ,可以通过“外部类 . this . 变量名”
    2. 如果内部类中的成员被private(私有)修饰,这个时候只能用方式1来访问内部类
    3. 内部类中有成员变量被static修饰 那么这个类也必须是一个静态的

    内部类使用的好处‘

    内部类中是可以直接访问外部类的所有成员

    一般在什么情况下使用内部类:

    我们在描述一个A对象,发现A对象中又需要有一个对象B很复杂,B对象又要访问A中的数据,这个时候用外部类来描述B对象更方便

    局部内部类:

    在类的方法中定义的类,这样的类叫局部内部类

    局部内部类只能通过第一种方式访问(在内部类所在的方法里直接创建内部类对象  ,用这个对象访问内部类的方法)

    局部内部类的使用注意:

    1. 如果局部内部类访问方法中的局部变量,方法中的局部变量必须用final修饰

    匿名内部类:没有类名的内部类

    匿名内部类的好处:简化书写

    使用匿名内部类使用前提:

    1. 类必须有继承或者实现关系

    匿名类的是使用

    class Outer

    {

        //不用匿名

        public void print(){

       //匿名的Dog

    //匿名内部类 : 只是没有名字 ,其他的个普通类没有区别。

      Animal a = new Animal()这个其实是一个类的匿名内部类,具体是什么类就不知道了

       Animal a = new Animal(){  // 匿名内部类(子类)

       //具体实现

          public  void run() { 

            System.out.println("狗在跑");

              }

              public  void sleep(){

                     System.out.println("狗在睡觉");

              }

           };

           a.run();

           a.sleep();

        }

    }

          

  • 相关阅读:
    三十二、恢复单库单表
    三十一、XBK备份
    三十、分库分表备份脚本
    二十九、mysqldump恢复案例
    二十八、mysqldump备份
    二十七、备份介绍
    二十六:慢日志分析
    二十五、二进制日志之GTID模式
    Trie树
    AC自动机
  • 原文地址:https://www.cnblogs.com/li-su-35/p/6090947.html
Copyright © 2011-2022 走看看