• 面向对象


    1.abstract能修饰哪些结构?修饰以后,有什么特点?

    类、方法。

    类不能实例化,提供子类
    抽象方法,只定义了一种功能标准。具体的执行,需要子类去实现。

    2.接口是否能继承接口?抽象类是否能实现(implements)接口?抽象类是否能继承非抽象的类?

    能,体现接口之间的关系

    能,接口中的所有抽象方法都默认是由 public abstract修饰的。
    若一个类实现(implements)这个接口的时候,没有全部实现
    接口中的抽象方法,那么这个类就是一个抽象类。

    能,所有的类,若没有明确指明父类,那他们都有一个父类Object,既默认继承了Object类(非抽象类)。

    3.声明抽象类,并包含抽象方法。测试类中创建一个继承抽象类的匿名子类的对象。

    abstract AA{
        public abstract void m();
    }
    
    main(){
        AA a = new AA(){
              public void m(){
              
              }
        };
    
        a.m();
    }
    

    *4.抽象类和接口有哪些共同点和区别?

    相同点:不能实例化,都可以被继承

    不同点:抽象类:一定有构造器。可以没有抽象方法。单继承。
    接口:不能声明构造器。多继承。JAVA 8之前:所有成员变量都默认是由 public static final 修饰的。
    所有抽象方法都默认是由 public abstract 修饰的。
    Java 8 中,你可以为接口添加静态方法和默认方法。从技术角度来说,这是完全合法的,只是它看起来
    违反了接口作为一个抽象定义的理念。
    静态方法:使用 static 关键字修饰。可以通过接口直接调用静态方法,并执行其方法体。
    我们经常在相互一起使用的类中使用静态方法。你可以在标准库中找到像 Collection/Collections
    或者 Path/Paths 这样成对的接口和类。
    默认方法:默认方法使用 default 关键字修饰。可以通过实现类对象来调用。
    我们在已有的接口中提供新方法的同时,还保持了与旧版本代码的兼容性。
    比如:java 8 API 中对 Collection、List、Comparator 等接口提供了丰富的默认方法。
    可以发现接口正在慢慢向抽象类的特性方向发展。

    5.如何创建静态成员内部类和非静态成员内部类的对象?

      Person static Dog   Bird
      Person.Dog dog = new Person.Dog();
    
      Person p = new Person();
      Person.Bird bird = p.new Bird();
  • 相关阅读:
    3.2 Program Encodings 程序编码
    Describe your home
    Building vs solution in command line
    找到适合自己的人生轨迹 Angkor:
    每个月总有那么几天不想学习,不想写代码 Angkor:
    Linux下的Memcache安装
    敏捷开发之 12条敏捷原则
    为什么要用NIO
    memcached server LRU 深入分析
    Linux 脚本编写基础
  • 原文地址:https://www.cnblogs.com/NTyee/p/13187947.html
Copyright © 2020-2023  润新知