java多态,抽象类和接口

多态:

多态的三个条件:
1):必须有继承关系

2)有方法重写

3)父类引用指向子类对象:向上转型

Fu f = new Zi() ;

多态的弊端:不能使用子类特有功能:向下转型

将父类的对象强制转换为子类的引用

Zi z = (Zi)f;

抽象类:

特点:强制子类必须是实现抽象类中所有的抽象方法!抽象类不能实例化!(不能创建对象!);关键字abstrac

实际开发中:创建对象:

1)具体类

2)抽象类多态

3)接口多态

抽象类与抽象方法的联系:

如果一个类是抽象类,那么该类中一定有抽象方法吗?

错误的;

如果一个类中有抽象方法,那么该类一定是抽象类!

接口:

定义一个接口:接口的命名和类名是是一样的!

interface 接口名{}

接口的特点:

接口中的方法只能是抽象方法

接口也不能直接实例化!

如何创建接口对象呢?

接口的实现方式:是通过它的子实现类进行实例化的(创建对象)

接口多态的:

interface Inter{

 

}

class InterImpl  implements Inter{

}

接口多态:

Inter I = new InterImpl() ;

new Inter(){

方法的实现;

}

接口和抽象类的区别?

1)成员的区别:

接口:

成员变量:只能是常量: static final

成员方法:只能是抽象方法:默认修饰符:public abstract

构造方法:接口中没有构造方法

抽象类:

成员变量:可以是常量也可以是变量

成员方法:可以是抽象方法,也可以非抽象方法

构造方法:有构造方法:有参构造/无参构造

2)关系的区别

类与类:继承关系,只能单继承,不能多继承,可以多层继承

类与接口:实现关系,一个类可以在继承一个类的同时,可以实现多个接口

接口与接口:继承关系,可以单继承,可以多继承

3)设计理念的区别:

抽象类体现是一种继承关系,也体现的一种:是 的关系

接口是事物的一种扩展性功能,体现的一种:像 的关系



你可能感兴趣的:(java基础)