二周突刺(多态)
多态
多态是方法的多态,属性没有多态性。
存在条件(注意事项)
有继承( 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类名或者接口名(){
重写方法;
}(.方法名:可以直接调用);
变量名.方法名(也可调用)
使用:

浙公网安备 33010602011771号