泰宁新闻网

抽象类和接口的区别,接口抽象类区别面试

鞋

泰宁新闻网 http://www.tainingxinwen.cn 2020-06-30 09:42 出处:网络
抽象类和接口的区别,接口抽象类区别面试,抽象类与接口的区别及其原因? 抽象类与接口的区别是什么?想必大家对这个问题都不陌生,也是让很多人头疼的问题之一!因为我们面试之前都会巩固复习这个问题,但是时隔不久又

抽象类和接口的区别,接口抽象类区别面试,抽象类与接口的区别及其原因?

抽象类与接口的区别是什么?想必大家对这个问题都不陌生,也是让很多人头疼的问题之一!因为我们面试之前都会巩固复习这个问题,但是时隔不久又会忘记,主要的原因是没有了解抽象类和接口的实质及作用。

抽象类:

抽象类的产生:在java面向对象设计编程中,抽象类产生于类的继承;如Student类和Teacher类都可以继承Person类,而现实生活中有具体的学生(Student)、教师(Teacher),而没有一种叫人类(Person)的人,所以Person类就属于抽象中的概念,

进而Person类不具有实例化的意义,通常就会把Person类定义为抽象类来限制其实例化。

抽象类和抽象方法的定义:

 1 /**
 2 * 父类Person
 3 * @author bianxc
 4 */
 5 public abstract class Person {
 7 protected String name = "";
 8 protected int age = 0;
10 public Person(String name, int age) {
11 this.name = name;
12 this.age = age;
15 /**
16 * 抽象方法,展示个人信息
17 */
18 public abstract void showInfo();
20 /**
21 * 抽象类中可以有抽象方法,也可以有方法实现
22 */
23 public void otherMethod() {
24 System.out.println("我是方法实现");
28 /**
29 * 子类Student
30 * @author bianxc
31 */
32 public class Student extends Person {
34 private String grade = "";
36 public Student(String name, int age, String grade) {
37 super(name, age);
38 this.grade = grade;
41 @Override
42 public void showInfo() {
43 System.out.println("姓名:" + super.name + ",年龄:" + ","
44 + "年龄:" + super.age + ",年级:" + this.grade);
46 }

 

注意:抽象类中可以有零到多个抽象方法。当父类中定义了抽象方法,则子类(非抽象类)必须重写该抽象方法,否则子类必须定义为抽象类。

总结:

1.抽象类不能被实例化

2.抽象类中可以有零到多个抽象方法,也可以有普通方法

3.如果一个类中包含抽象方法,那么类必须定义为抽象类

4.抽象类中可以有构造方法

接口:

接口的产生:java面向对象中,类的继承属于 is a 关系,只支持单继承;如果学生又具有一种特殊行为考试,就不能让Student类继承Person类又继承exam类。

接口的定义:

 1 /**
 2 * 考试接口
 3 * @author bianxc
 4 */
 5 public interface Exam {
 7 void test();
10 /**
11 * 子类Student
12 * @author bianxc
13 */
14 public class Student extends Person implements Exam {
16 private String grade = "";
18 public Student(String name, int age, String grade) {
19 super(name, age);
20 this.grade = grade;
23 @Override
24 public void showInfo() {
25 System.out.println("姓名:" + super.name + ",年龄:" + ","
26 + "年龄:" + super.age + ",年级:" + this.grade);
29 @Override
30 public void test() {
31 System.out.println("学生正在考试");
33 }

总结:

1.接口可以理解为一个特殊的抽象类(不能被实例化),但又和抽象类以完全不同的语法定义

2.接口中只能定义常量,不能定义变量;接口中的属性默认用 public static final 修饰,接口中的属性都是全局静态常量(由于静态常量不能重新被赋值,因此接口中不允许存在构造方法)

3.接口中的方法全部都是抽象方法,因此类实现接口必须重写接口中的所有方法,否则必须定义为抽象类

4.接口可以实现多继承,但是接口不能继承类;一个类只能继承一个父父类

5.接口产生就是为了达到多重继承的效果

抽象类和接口的区别的相关网页热门搜索词

接口抽象类区别面试|面试==和equals的区别|简述抽象类和接口的区别|抽象类和接口的异同点|java中接口和抽象类的区别|抽象类的概念和特点|接口与抽象类的7个区别|抽象类和接口使用场景|java抽象类和接口的代码|

本文标题:抽象类和接口的区别,接口抽象类区别面试
http://www.tainingxinwen.cn/qitaxinxi/408935.html

0

精彩评论

暂无评论...
验证码 换一张
取 消