二周突刺(多态)

多态

  多态是方法的多态,属性没有多态性。

   存在条件(注意事项)

    有继承( inherit)关系 

    子类重写父类方法(private final修饰的不可重写,也就不存在多态)

    父类引用指向子类对象   Fu  s1 =  new  Zi();左边父类右边new子类

 

 instanceof   引用类型转换,判断是否有父子关系,是则true,否则false

  是并列还是从属关系,同级并列不能比较,Object默认是所有类的父类; 

((要转的类型)变量名).调用的方法名

 

static

  静态代码块 只会执行一次

  静态导入包  import static java . long .Math . random;

  直接调用random()则会生成一个随机数,

 类只能是单继承,接口可以多继承

抽象类

  抽象类不能直接被调用,要创建一个子类继承抽象类并冲写抽象类中的方法     ( 抽象类名   变量名   =  new   创建的子类  )

   abstract 修饰符,修饰类和方法

  抽象类

    里面只有抽象方法,只有名字,没有实

    抽象类的所有方法都有继承他的子类去重写实现,除 非本类中方法也是抽象的(抽象方法)

    不能被new创建出来,不能实例化( instantiated )

    抽象方法必须在抽象类,抽象类可以没有抽象方法(可以有普通方法)

 

接口 interface  (相当于约束)

  接口中所有的定义其实都是抽象的,默认都是  public abstract 

  接口中只有方法的定义,接口都需要实现类,默认类名后加Impl做后缀作为接口的实现类,通过 implements 实现; public class  UserServiceImpl     implements   UserService,UserService2{}

  多继承,implements 修饰符实现接口。

  实现类里重写接口的所有定义方法(  void  方法名(参数类型,参数名))

作用:

  约束

  定义一些方法,让不同人实现

  接口不能实例化,接口中没有构造方法

  implements可以实现多个接口

  必须重写接口中的方法

  所有方法,默认 publicstatic 修饰,常量 public static final修饰

 

 

内部类

  内部类可以直接访问外部类的成员,包括私有

  外部类要访问内部类的成员,必须创建对象

 

   一个java类(一个页面)中可以有多个class类,只能有一个public class 类  

  outer(外部类名).new Inner(内部类名)

  内部类可以获得外部类的私有属性;

  静态内部类没办法直接访问非静态属性

 

成员内部类

 

此方式对私有内部类失效!!!

 私有内部类(成员内部类)的调用:在外部类定义一个方法调用内部类,外部类创建对象调用此方法用来达到调用内部类的结果。

 

    

局部内部类

  是在方法中定义的类,外界无法直接使用,需要在方法内部创建对象并使用,该类可以直接访问外部类的成员也可以访问方法内的局部变量;

 匿名内部类:

    前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类

    本质:是继承了该类或者实现该接口的子类匿名对象(本质是一个对象,没有名字,只要是对象就可以调用方法)。

    格式:( 类名或者接口名.变量名=)  new类名或者接口名(){

                           重写方法;

                     }(.方法名:可以直接调用);

          变量名.方法名(也可调用)

    使用:

 

posted @ 2022-03-17 19:26  分析虎  阅读(24)  评论(0)    收藏  举报