java多态笔记

1、当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

2、intanceof关键字用法:对象 intanceof 类;判断该对象是不是该类的实例;

3、抽象类不能直接被实例化,只有继承它的类才能被实例化;而且抽象类不能被finally关键字修饰,被finally关键字修饰后不能被继承,这与抽象类的作用相矛盾

4,抽象方法没有{}

5、java实例化:原文链接:https://blog.csdn.net/qq_43553938/article/details/83587291
Demo demo = new Demo();
通常把这条语句的动作称之为创建一个对象,也就是实例化,其实,它包含了四个动作。

1)右边的“new Demo”,是以Demo类为模板,在堆空间里创建一个Demo类对象(也简称为Demo对象)。

2)末尾的()意味着,在对象创建后,立即调用Demo类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果你没写,Java会给你补上一个默认的构造函数。

3)左边的“Demo demo”创建了一个Demo 类引用变量。所谓Demo类引用,就是以后可以用来指向Demo对象的对象引用。

4)“=”操作符使对象引用指向刚创建的那个Demo对象。
6为什么我们要向上转型:
当我们需要多个同父的对象调用某个方法时,通过向上转换后,则可以确定参数的统一.方便程序设计

class A {
         public void print() {
                  System.out.println("A:print");
         }
}

class B extends A {
         public void print() {        
                  System.out.println("B:print");
         }
}

class C extends B {
         public void print() {        
                  System.out.println("C:print");
         }
}

public class Test{
         public static void func(A a)
         {
                  a.print();
         }

         public static void main(String args[])
         {
                  func(new B());  //等价于 A a =new B();
                  func(new C());  //等价于 C c =new C();
         }
}

7、a intanceof b ,判断a引用是否指向了b类的实例对象

8 向下转型  则是为了,通过父类强制转换为子类,从而来调用子类独有的方法

posted @ 2021-03-07 11:43  11111ghm  阅读(67)  评论(0编辑  收藏  举报