Java从小白到入门,Day8,JAVAOO-多态
多态:就是指一类对象都是相同的行为,但其表现不同,称之为多态。 比如动物都有叫,狗叫与猫叫就不同;
多态就是相同的行为,不同的实现。也就是“一个接口,多种实现”。多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过不同的具体事物继承这个抽象事物,来实现重写抽象事物的方法。
多态:子类型可以直接给父类型赋值,当执行父类型的方法时,会运行期真实类型的方法;或,一类事物有共同的行为,但拥有不同的行为实现,可以将这些事物看做是一类事物,而不需要关系其具体的实现过程。
多态的作用:
1. 应用程序不必为每一个派生类编写功能调用,只需要对父类进行处理即可。大大提高程序的可复用性。
2. 派生类的功能可以被父类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。
abstract关键字:用于修饰类,表示抽象类,抽象类不可以创建对象
多态:①,静态多态; overload,override
②,动态多态。 override+动态绑定
******在创建子类时,首先要通过要运行父类的构造函数,在运行子类的构造函数。
在调用子类的方法时,首先调用子类的方法,如果子类没有方法,在调用父类的方法。
static:修饰符,①,与对象无关; ②,在加载期,先加载。
修饰属性时,全类共享一个值。通过类名.属性名 访问。与对象无关,属于类级别。
修饰方法,该方法与对象无关,属于类方法。 调用,类名.方法名。
静态方法只能操作静态属性和方法,不能操作非静态的属性和方法。因为,先加载静态方法,在加载非静态方法。
1, 静态方法与对象无关,所有在调用时,可没有绑定对象。而非静态的属性和方法必须依附一个对象,所以静态方法不能操作它们。
2,静态方法在加载期会被优先加载,然后在加载非静态的。所以在加载静态方法时,JVM还不知道非静态属性和方法的存在。
代码块:初始化块。在产生对象的时候,会被执行在属性和属性值之间。
静态代码块:在类加载期自己被调用,仅执行一次。
Objec(根类);
equals:判断两个对象业务上相等。
tostring:放回一个对象的字符串描述;
finalize:GC调用放方法,回收对象。
“==”:判断两个引用是否指向同一个对象。
equals:判断两个对象业务上是否相等。