继承与多态,动态绑定,final,abstract

    xiaoxiao2021-03-25  66

    1.Object类及其方法

    2.clone克隆

    3.继承

    3.1.super关键字 可以使用super调用父类的非私有属性,非私有方法,以及非私有构造函数 3.2.子类和父类构造方法的执行顺序 ①子类默认调用父类的无参构造方法,也就是说,子类的构造方法中会默认调用super(),并且在构造方法的第一行. ②如果子类只提供有参的构造方法,则必须在子类的构造方法中调用父类的构造方法. ③执行完父类的构造方法后,再调用本类的构造方法.

    4.多态

    Java中多态的体现具体表现在方法的重载和重写上. 4.1类型检测--向上转型/向下转型 向上转型是指父类对象的引用指向子类对象.--- 向上转型格式:父类 对象 = new 子类() 向下转型是指在向上转型的基础上再次指向子类的对象. 向下转型格式: 父类 对象1 = new 子类(); 子类 对象2 = (子类)对象1; 向上转型总结 父类引用指向子类对象,子类引用不能指向父类对象.把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转型,如Father f1 = new Son().把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转型.如f1就是一个指向子类对象的父类引用,吧f1赋给子类引用s1即Son1 s1=(Son)f1.其中f1前面的(Son)必须添加,进行强制转换.upcasting会丢失子类特有的方法,但是子类overriding父类的方法,子类方法有效.

    5.动态绑定

    JAVA虚拟机调用一个类方法时,它会基于对象引用的类型(通常在编译时可知)来选择所调用的方法。相反,当虚拟机调用一个实例方法时,它会基于对象实际的类型(只能在运行时得知)来选择所调用的方法,这就是动态绑定,是多态的一种。动态绑定为解决实际的业务问题提供了很大的灵活性,是一种非常优美的机制。 动态绑定具体表现在向上转型上,因为只有在运行时才知道具体运行的是那个实例. 静态绑定 静态绑定发生在编译时期,在程序编译时就绑定的. 使用private或static或final修饰的变量或者方法,使用静态绑定,在Java中变量都是静态绑定的.

    6.static关键字

    static 关键字的访问时不需要某个特定的实例的.如果一个成员被声明为static(静态的),就能够在它的类的任何对象创建之前被访问,为不必引用任何对象 静态代码块 静态代码块优先于构造方法执行,并且静态代码块在类加载时只执行一次 static{ System.out.println(“静态代码块”); }

    7.final关键字

    使用final修饰类,代表该类是不能被继承的.final修饰方法表示该方法不能被重写.final修饰变量,代表该变量是常量,不能被修改.

    8.abstract关键字

    (1)只给出方法定义而不具体实现的方法被称为抽象方法,抽象方法是没有方法体的,在代码的表达上就是没有“{}”。使用 abstract 修饰符来表示抽象方法和抽象类。 (2)abstract修饰符表示所修饰的类没有完全实现,还不能实例化。如果在类的方法声明中使用abstract修饰符,表明该方法是一个抽象方法,它需要在子类实现。如果一个类包含抽象方法,则这个类也是抽象类,必须使用abstract修饰符,并且不能实例化。 列如:苹果,香蕉,梨子等都是具体的,而老师,学生,车等都是抽象的.用户在开始编程中,用户也并不知道具体的类,比如具体的是那个老师….

    转载请注明原文地址: https://ju.6miu.com/read-38296.html

    最新回复(0)