`
鬼大来晚了
  • 浏览: 67892 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Java学习笔记——多态、接口、内部类

    博客分类:
  • Java
 
阅读更多
    大部分内容都是摘自《Thinking in Java》。

    多态是继数据抽象和继承之后的第三种基本特征。多态方法调用允许一种类型表现出与其他相似类型之间之间的区别,只要他们都是从同一个基类导出而来的。这种区别是根据方法行为的不同而表示出来的。
1、动态绑定机制:将一个方法调用同一个方法主体关联起来被称作绑定,在程序执行前进行绑定称为前期绑定,在运行时根据对象的类型进行绑定称为动态绑定或运行时绑定。
向上转型:我们定义一个方法,接收基类作为参数,当我们向该方法传递导出类参数时,方法会自动的根据对象类型调用导出类的行为。
2、在导出类中除了重写基类的方法,还可以定义自己的方法和域。这种称为扩展,经过扩展之后使得导出类和基类之间有一种"is-like-a"的关系。
3、多态的缺点:
(1)缺点:“覆盖”私有方法,只有非private方法才可以被覆盖。在导出类中,对于基类的private方法,最好采用不同的名字。
(2)缺点:域与静态方法,任何域访问操作都将由编译器解析,因此不是多态的。又,如果某个方法是静态的,他的行为就不具有多态性,静态方法是与类,而不是单个的对象相关联的。
3、复杂最想调用构造器的顺序:
(1)在其他任何事物发生之前,将分配给对象的存贮空间初始化为二进制的零;
(2)调用基类构造器;
(3)按照声明的顺序调用成员的初始化方法;
(4)调用导出类的构造器主体。

    接口和内部类为我们提供了一种将接口和实现分离的更加结构化的方法。
1、抽象方法:方法只有声明,没有方法体。包含抽象方法的类称为抽象类。
abstract void f();
2、接口(interface):提供一个完全抽象的类,只是提供了形式而未提供任何具体实现。
类继承接口使用关键字implements关键字。接口中的方法必须被定义为public。接口中的任何域都自动化是static和final的,
3、类可以继承多个接口,从而实现多重继承。实现接口的类同样可以向上转型为接口。
4、接口可以嵌套在类或其他接口中。

   可以将一个类的定义放在另一个类的内部,这就是内部类。
1、当生成一个内部类对象时,此对象与制造它的外部对象之间就有了一种联系。内部类可以访问其外围的类的方法和字段。
2、内部类使用外围类对象的引用,通过外部类.this实现。
必须使用外部类的对象来创建该内部类的对象。

OutClass oc = new OutClass();
OutClass.InnerClass ic=oc.new InnerClass();


3、局部内部类:在方法的作用域内创建一个完整的类;
4、匿名内部类:匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。

public class Main {

    public static void main(String[] args) {
        InnerTest inner = new InnerTest();
        Test t = inner.get(3);
        System.out.println(t.getI());
    }
}

class Test {  //超类
    private int i;
    public Test(int i) {
        this.i = i;
    }
    public int getI() {
        return i;
    }
}

class InnerTest {  //用于内部类的测试
    public Test get(int x) {
        return new Test(x) {  //创建匿名内部类,调用父类的构造方法
            @Override
            public int getI() {
                return super.getI() * 10;
            }
        };
    }
}


5、嵌套内部类:如果不需要内部类对象和外围类之间有联系,可以将内部类声明为static。这通常称为嵌套类。嵌套类可以作为外围接口的一部分,甚至可以在内部类中实现其外围接口。



分享到:
评论

相关推荐

    JAVA学习笔记————————

    在深入探讨JAVA学习笔记之前,我们首先理解一下JAVA这一编程语言的重要性。JAVA,由Sun Microsystems公司(现已被Oracle收购)于1995年推出,是一种面向对象的、跨平台的编程语言,以其“一次编写,到处运行”的特性...

    Java学习笔记——良葛格

    【Java学习笔记——良葛格】是一份由爱好者良葛格整理的Java学习资料,主要以PDF格式呈现,虽然可能不完整,但包含了丰富的Java编程基础知识和实践技巧,旨在为初学者提供一个学习和参考的平台。以下是笔记中可能...

    Java JDK 6学习笔记——ppt简体版

    Java JDK 6学习笔记是为Java初学者量身定制的一份宝贵资料,它涵盖了Java编程的基础概念、语法以及核心特性。这份PPT简体版旨在帮助读者快速掌握Java开发的基本技能,逐步成为一名合格的Java程序员。 Java JDK...

    Thinking in Java 自学笔记——第一章 对象导论

    Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...

    Java JDK 6学习笔记——ppt简体版.rar

    这份"Java JDK 6学习笔记——ppt简体版"提供了关于这个关键版本的详细教程,适合初学者和有一定经验的开发者来深入理解Java编程。 首先,我们要了解Java JDK是什么。Java Development Kit,简称JDK,是Oracle公司...

    Java JDK 6学习笔记——ppt

    Java JDK 6学习笔记——PPT简体版是针对初学者和有经验的开发者们的一份宝贵资源,它深入浅出地介绍了Java编程语言的核心概念和技术。这份资料以PPT的形式呈现,使得学习过程更加直观易懂,同时包含了课程中的源代码...

    Java JDK 6学习笔记——ppt简体版附课本代码

    这份“Java JDK 6学习笔记——ppt简体版”涵盖了Java语言的核心概念、语法特性以及JDK 6的新功能,旨在帮助初学者和有经验的开发者深入理解并掌握这一版本的Java开发环境。 首先,Java JDK 6的安装与配置是学习的...

    学习笔记——资料

    【Java学习笔记——全面解析】 Java作为一种广泛应用的高级编程语言,是软件开发领域的核心力量。这份"学习笔记——资料"涵盖了Java学习的各个方面,旨在帮助初学者和有经验的开发者巩固基础,提升技能。以下是对这...

    个人学习的java笔记——思维导图

    这份"个人学习的java笔记——思维导图"涵盖了上述诸多Java编程的核心知识点,通过思维导图的方式,使得学习者可以更直观地理解和记忆这些复杂的概念,对提升Java学习效果大有裨益。无论你是初学者还是有经验的开发者...

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    JAVA学习笔记第八天——示例代码Day08

    在JAVA学习的过程中,第八天的主题聚焦于几个关键概念:接口的使用、多态以及内部类。这些知识点都是Java编程中的核心部分,对于理解和编写复杂的Java应用程序至关重要。 首先,让我们深入探讨接口(Interface)。...

    JDK 6学习笔记——PPT简体版

    **JDK 6学习笔记——PPT简体版** Java Development Kit(JDK)是Java编程语言的核心组件,它提供了开发和运行Java应用程序所需的工具和环境。JDK 6是Oracle公司发布的一个重要版本,为开发者带来了许多改进和新特性...

    达内core_java学习笔记

    Java是世界上最流行的编程语言之一,...以上就是“达内Core Java学习笔记”中涉及的主要知识点。通过深入学习和实践,初学者可以逐步建立起坚实的Java编程基础,并为进一步学习Java的高级特性和框架打下坚实的基础。

    MLDn学习笔记 —— JDK新特性(枚举)

    2. 自动继承:枚举默认继承`java.lang.Enum`类,可以添加方法和字段,实现接口。 3. 静态常量:枚举常量在内存中只存在一次,保证了值的安全性。 4. 自动序列化:枚举类型自动支持Java的序列化机制。 三、枚举的...

    Java入门学习笔记

    总之,这份"Java入门学习笔记"是一个全面的Java学习资源,覆盖了从基础知识到高级特性的广泛内容,对于想要踏入Java编程世界的新手来说,是一份不可多得的参考资料。通过阅读并实践这些笔记,初学者不仅可以掌握Java...

    CoreJava学习笔记

    ### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...

    java学习笔记

    ### Java学习笔记知识点详解 #### 一、Java面向对象编程思想 面向对象编程(Object-Oriented Programming, OOP)是Java的核心特性之一。通过封装、继承和多态这三个基本特征来实现。OOP能够提高代码的复用性和可...

Global site tag (gtag.js) - Google Analytics