继承
1、extends,从父类中继承下来属性和方法直接使用,除了继承下来的属性方法,子类自己还可以再
定义自己的属性和方法,这叫扩展。
2、还可以对父类中继承下来的内容,进行重写或者覆盖。
3、多态的体现,必须在继承关系之下,必须重写,父类的引用指向之类对象。
4、instanceof用来判断父类的引用到底指向是那个子类对象。(对父类引用进行一个转换,向下类型转换)
5、super, 就是当前类的父类的对象(父类this),super 可以调用父类被覆盖的属性和方法。
6、在继承过程中,构造函数是不能继承,只能在子类的构造函数的第一行使用super()来调用父类的构造函数
7、我们创建子类对象的时候,实际是先去创建了父类的对象,然后才创建了子类的对象。
8、Object ,equals ,toString ,String 类是比较特殊(可以创建两个对象,它已经重写Object给提供的tostring 和
equals 方法,所以字符串不会打印对象地址,只会打印字符串本身,字符串比较要用equals才比较的是字符串本身。)
抽象类
1、那就是不具体,模糊,的一类实体,称之为抽象。
2、java 语言的最基本单元类,来描述这样的一类实体,这类就是抽象类。
3、java 为了更好的,更加贴近生活的描述生活中事物,所以又给出了一个结构,抽象类。
4、属性的抽象,方法抽象(主要方法行为的抽象)
5、当我们无法具体描述一类事物中的某种行为的时候,那么就把这种行为抽象化(方法没有方法体),
这样的方法我们就把它叫做抽象方法,需要一个关键字修饰符来修饰(abstract)。
6、如果我们这个类有一个方法是抽象方法,那么这类也就变成抽象类。这个类也要用关键abstract 修饰。
7、如果一个类是抽象类,那么它就无法具体出来一个对象,也就是无法实例化,没法创建对象了啊,
通俗的说,没法使用new 关键字调用它的构造函数创建对象了。
但是抽象是有构造函数的。(抽象无法直接使用new关键字创建对象)
8、抽象可以借助于子类来创建对象,抽象类必须被继承才有使用价值。
9、就算抽象类没有任何的抽象方法,这个类也可以被定义为抽象类,那就直接使用abstract修饰类就行。
10、加入一个类是抽象类,其中也有抽象方法,那么继承它的子类就必须把抽象父类中抽象方法,全部都
实现(重写),如果没有这样做的话,你这个子类也将成为抽象类。
11、在我们这个java的 继承关系链中,最后一个类一定得一个普通的类。
12、抽象类可以有抽象方法也可以有非抽象方法,但是就算是没有任何抽象方法,这个类也可以是抽象类。
13、asbtract ,
a、不能和private 一起使用。
b、不能和final 一起使用。
c、不能和static 一起使用。
14、final 关键可以修饰
a、属性 就会变成常量,不能被改变。
b、方法 就不能被重写。
c、类 不能继承。
15、方法的调用流程,
绑定,我们所调用方法是那种类型的,是那个对象的。
a、静态绑定
就在在类加载的的时候,程序运行到一个类名的 Student, 就已经知道这个方法是属于什么类型;
static final private
b、动态绑定
最终调用的方法是谁,是有引用变量指向的那个对象决定。
1)、根据引用变量类型,查看有没有这个方法。
2)、类型,检查这个方法参数列表,根据参数列表的不同,决定调用哪个方法。
3)、这个方法是不是static ,private,final
4)、动态绑定,这个变量执行对象是谁,还要这个对象中是不是重写了这个方法,如果重写就调用重写后的。
静态绑定,(编译时绑定)
动态绑定, (运行时绑定)
1、extends,从父类中继承下来属性和方法直接使用,除了继承下来的属性方法,子类自己还可以再
定义自己的属性和方法,这叫扩展。
2、还可以对父类中继承下来的内容,进行重写或者覆盖。
3、多态的体现,必须在继承关系之下,必须重写,父类的引用指向之类对象。
4、instanceof用来判断父类的引用到底指向是那个子类对象。(对父类引用进行一个转换,向下类型转换)
5、super, 就是当前类的父类的对象(父类this),super 可以调用父类被覆盖的属性和方法。
6、在继承过程中,构造函数是不能继承,只能在子类的构造函数的第一行使用super()来调用父类的构造函数
7、我们创建子类对象的时候,实际是先去创建了父类的对象,然后才创建了子类的对象。
8、Object ,equals ,toString ,String 类是比较特殊(可以创建两个对象,它已经重写Object给提供的tostring 和
equals 方法,所以字符串不会打印对象地址,只会打印字符串本身,字符串比较要用equals才比较的是字符串本身。)
抽象类
1、那就是不具体,模糊,的一类实体,称之为抽象。
2、java 语言的最基本单元类,来描述这样的一类实体,这类就是抽象类。
3、java 为了更好的,更加贴近生活的描述生活中事物,所以又给出了一个结构,抽象类。
4、属性的抽象,方法抽象(主要方法行为的抽象)
5、当我们无法具体描述一类事物中的某种行为的时候,那么就把这种行为抽象化(方法没有方法体),
这样的方法我们就把它叫做抽象方法,需要一个关键字修饰符来修饰(abstract)。
6、如果我们这个类有一个方法是抽象方法,那么这类也就变成抽象类。这个类也要用关键abstract 修饰。
7、如果一个类是抽象类,那么它就无法具体出来一个对象,也就是无法实例化,没法创建对象了啊,
通俗的说,没法使用new 关键字调用它的构造函数创建对象了。
但是抽象是有构造函数的。(抽象无法直接使用new关键字创建对象)
8、抽象可以借助于子类来创建对象,抽象类必须被继承才有使用价值。
9、就算抽象类没有任何的抽象方法,这个类也可以被定义为抽象类,那就直接使用abstract修饰类就行。
10、加入一个类是抽象类,其中也有抽象方法,那么继承它的子类就必须把抽象父类中抽象方法,全部都
实现(重写),如果没有这样做的话,你这个子类也将成为抽象类。
11、在我们这个java的 继承关系链中,最后一个类一定得一个普通的类。
12、抽象类可以有抽象方法也可以有非抽象方法,但是就算是没有任何抽象方法,这个类也可以是抽象类。
13、asbtract ,
a、不能和private 一起使用。
b、不能和final 一起使用。
c、不能和static 一起使用。
14、final 关键可以修饰
a、属性 就会变成常量,不能被改变。
b、方法 就不能被重写。
c、类 不能继承。
15、方法的调用流程,
绑定,我们所调用方法是那种类型的,是那个对象的。
a、静态绑定
就在在类加载的的时候,程序运行到一个类名的 Student, 就已经知道这个方法是属于什么类型;
static final private
b、动态绑定
最终调用的方法是谁,是有引用变量指向的那个对象决定。
1)、根据引用变量类型,查看有没有这个方法。
2)、类型,检查这个方法参数列表,根据参数列表的不同,决定调用哪个方法。
3)、这个方法是不是static ,private,final
4)、动态绑定,这个变量执行对象是谁,还要这个对象中是不是重写了这个方法,如果重写就调用重写后的。
静态绑定,(编译时绑定)
动态绑定, (运行时绑定)