抽象类接口总结
2017-03-19 20:20
190 查看
对于抽象类、接口、多态这三个看似很基础知识,我每次面试都会遇到,每次都让我举例,说明什么情况下用抽象类、接口,多态,每次答得的不尽人意,最近把这些总结了下,今天先总结下抽象类和接口的基础知识点,明天给出他们的例子。
抽象类和接口基础知识点总结:
抽象类——abstract:
1.抽象类的解释:
当多个类中出现相同功能的函数,但功能主体不同,这时可以向上抽取,只抽取功能定义,而不抽取功能主体;
一个类中有抽象类时,这个方法用abstract修饰,同时这个类也是抽象类,用abstract修饰
2.抽象类的特点:
1.抽象方法一定在抽象类中;
2.抽象方法和抽象类都必须用abstract修饰;
3.抽象类不可以用new来创造对象,因为建立对象无意义;
4.抽象方法要想使用,必须由子类复写其所有的抽象方法后,建立了对象调用;如果子类只是复写了部分抽象方法,则子类还是一个抽象类。
3.抽象类和一般类没有什么不同,该怎么描述事物就怎么描述,只不过,该事物出现了一些看不懂的功能,这些不确定的部分,也是该事物的功能,需要明确出来,单独无法定义出来,需要根据子类特有的特性去定义。
4.抽象类比一般类多了抽了函数,就是在抽象类中可以定义抽象方法和非抽象方法;
5.抽象类中可以不定义抽象方法,这样仅仅是不让创建对象;
接口(interface):
当抽象类中的方法都是抽象的,那么该类可以通过接口形式表示;
1.接口的格式特点:
1.接口常见的定义:常量,抽象方法;
2.接口中的成员都有固定的修饰符;接口中的成员都是public的,即使常量没有用修饰符修饰,jvm也会认为接口中的变量是这些修饰符修饰
4000
的。
常量public static final
方法public abstract
eg:interface inter{
public static finalint a;<=>int a;
public void show();
}
3.接口有抽象方法,所以不能初始化;
2.接口与类的连接用implement;
eg:class one implement inter{}
3.接口不能实例化,子类只有将接口里面所有的方法都实现后,才能用子类去初始化
4.当子类继承了接口以后,接口里面的成员变量可以直接被这个子类的类名称调用,子类名称.成员变量名称(因为static)
因为接口里面的成员变量都是publicstatic final类型的;
5.接口可以多实现,是对不支持多继承的转换;多实现是可以同时继承多个接口!!!!
为什么:因为继承多个父类,父类方法有重复,会造成奇异;而接口并没有实现;需要子类去实现,不会出现这个歧义!
6.接口与接口之间也有继承关系,可以实现多继承;
抽象类和接口的异同点:
相同点:
都是不断向上抽取而来的。
不同点:
1,抽象类需要被继承,而且只能单继承。
接口需要被实现,而且可以多实现。
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽 象方法。
接口中只能定义抽象方法,必须由子类去实现。
3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
接口的实现是like a 关系,在定义体系额外功能。
抽象类和接口基础知识点总结:
抽象类——abstract:
1.抽象类的解释:
当多个类中出现相同功能的函数,但功能主体不同,这时可以向上抽取,只抽取功能定义,而不抽取功能主体;
一个类中有抽象类时,这个方法用abstract修饰,同时这个类也是抽象类,用abstract修饰
2.抽象类的特点:
1.抽象方法一定在抽象类中;
2.抽象方法和抽象类都必须用abstract修饰;
3.抽象类不可以用new来创造对象,因为建立对象无意义;
4.抽象方法要想使用,必须由子类复写其所有的抽象方法后,建立了对象调用;如果子类只是复写了部分抽象方法,则子类还是一个抽象类。
3.抽象类和一般类没有什么不同,该怎么描述事物就怎么描述,只不过,该事物出现了一些看不懂的功能,这些不确定的部分,也是该事物的功能,需要明确出来,单独无法定义出来,需要根据子类特有的特性去定义。
4.抽象类比一般类多了抽了函数,就是在抽象类中可以定义抽象方法和非抽象方法;
5.抽象类中可以不定义抽象方法,这样仅仅是不让创建对象;
接口(interface):
当抽象类中的方法都是抽象的,那么该类可以通过接口形式表示;
1.接口的格式特点:
1.接口常见的定义:常量,抽象方法;
2.接口中的成员都有固定的修饰符;接口中的成员都是public的,即使常量没有用修饰符修饰,jvm也会认为接口中的变量是这些修饰符修饰
4000
的。
常量public static final
方法public abstract
eg:interface inter{
public static finalint a;<=>int a;
public void show();
}
3.接口有抽象方法,所以不能初始化;
2.接口与类的连接用implement;
eg:class one implement inter{}
3.接口不能实例化,子类只有将接口里面所有的方法都实现后,才能用子类去初始化
4.当子类继承了接口以后,接口里面的成员变量可以直接被这个子类的类名称调用,子类名称.成员变量名称(因为static)
因为接口里面的成员变量都是publicstatic final类型的;
5.接口可以多实现,是对不支持多继承的转换;多实现是可以同时继承多个接口!!!!
为什么:因为继承多个父类,父类方法有重复,会造成奇异;而接口并没有实现;需要子类去实现,不会出现这个歧义!
6.接口与接口之间也有继承关系,可以实现多继承;
抽象类和接口的异同点:
相同点:
都是不断向上抽取而来的。
不同点:
1,抽象类需要被继承,而且只能单继承。
接口需要被实现,而且可以多实现。
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽 象方法。
接口中只能定义抽象方法,必须由子类去实现。
3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
接口的实现是like a 关系,在定义体系额外功能。
相关文章推荐
- Java关键字final、static,抽象类,接口使用总结
- 接口和抽象类的区别总结
- 黑马程序员 面向对象--抽象类、接口、内部类总结
- Java接口的作用和抽象类的区别总结
- 黑马程序员_java接口与抽象类总结
- abstract(抽象类)和Interface(接口)总结
- Java 抽象类与接口总结
- 关于抽象类与接口的一些总结
- 接口之间继承、抽象类普通类继承关系总结 (
- C#接口和抽象类的总结
- 接口与抽象类的简单总结
- Java关键字final、static,抽象类,接口使用总结收藏
- 接口,抽象类,抽象方法,虚方法简单总结
- java 中实体类,接口,抽象类之间的关系总结
- java中抽象类跟接口的区别和总结
- Java基础:类,抽象类,接口关系总结
- 2.虚方法、接口、抽象类 大总结0713
- C# 适应虚函数,抽象类,接口分别实现多态的方法总结。
- 黑马程序员_java的面向对象(对第七课继承..抽象类..接口及fianl应用总结)
- 黑马程序员-----java中final关键字、抽象类、接口总结*