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

来源:互联网 发布:ubuntu邮件服务器 编辑:程序博客网 时间:2024/06/06 02:03

Java继承的概念

1.Object类及其方法

2.clone克隆

3.继承

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

4.多态

Java中多态的体现具体表现在方法的重载和重写上.4.1类型检测--向上转型/向下转型向上转型是指父类对象的引用指向子类对象.---向上转型格式:父类 对象 = new 子类()向下转型是指在向上转型的基础上再次指向子类的对象.向下转型格式:父类 对象1 = new 子类();子类 对象2 = (子类)对象1;向上转型总结
  1. 父类引用指向子类对象,子类引用不能指向父类对象.
  2. 把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转型,如Father f1 = new Son().
  3. 把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转型.如f1就是一个指向子类对象的父类引用,吧f1赋给子类引用s1即Son1 s1=(Son)f1.其中f1前面的(Son)必须添加,进行强制转换.
  4. 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修饰符,并且不能实例化。
列如:苹果,香蕉,梨子等都是具体的,而老师,学生,车等都是抽象的.用户在开始编程中,用户也并不知道具体的类,比如具体的是那个老师….

0 0
原创粉丝点击