Java语言的多态以及抽象类和接口

多态

多态就是某一个事物,在不同时刻表现出来的不同状态
多态前提
1:要有继承关系;
2:要有方法重写,其实没有也是可以的,但是如果没有这个就没有意义;
3:要有父类引用指向子类对象( 父 f = new 子() )
多态好处
1:提高了代码的维护性(继承保证);
2:提高了代码的扩展性(由多态保证)
多态弊端:不能使用子类特有的功能,(要使用子类特有的功能,必须把父类的引用强制转换为子类的引用)
多态中的成员访问特点
1:成员变量:编译看左边,运行看左边;
2:构造方法:创建子类对象的时候,会访问父类的构造方法,对父类的数据进行初始化;
3:成员方法:编译看左边,运行看右边;
4:静态方法:编译看左边,运行看左边(静态和类相关,算不上重写,所以,访问还是左边的)

抽象类

在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类
抽象类特点
1:抽象类和抽象方法必须用abstract关键字修饰,抽象类格式: abstract class 类名 {},抽象方法格式: public abstract void 方法();
2:抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类;
3:抽象类中可以有构造方法,但不能进行实例化,它用于子类访问父类数据时的初始化;
4:抽象类不能直接实例化那么,按照多态的方式,由具体的子类实例化,其实这也是多态的一种,抽象类多态

接口

为了体现事物功能的扩展性,Java中提供了接口来定义一些额外的功能,但并不给出具体实现,谁需要谁调用
接口用关键字interface表示:格式是interface 接口名 {}
类实现接口用implements表示:格式是class 类名 implements 接口名 {}
接口成员特点:成员变量只能是常量,默认修饰符:public static final;接口没有构造方法;成员方法是抽象方法,默认修饰符public abstract
类与类:继承关系,只能单继承,可以多层继承
类与接口:实现关系,可以单实现,也可以多实现,并且还可以在继承一个类的同时实现多个接口
接口与接口:继承关系,可以单继承,也可以多继承

你可能感兴趣的:(java多态,抽象类,接口)