- 抽象类和接口总结(面试)
- 相同点
- 不同点
- 抽象(abstract)
- 抽象类的成员特点
- 成员变量
- 构造方法
- 成员方法
- 示例代码
- 接口(interface)
- 接口的特点
- 成员变量
- 构造方法
- 成员方法
补充中~ 抽象类和接口总结(面试) 相同点 不同点 抽象(abstract) 抽象类的成员特点 成员变量
- 可以是变量
public String name;
- 也可以是常量
public final Integer age = 30;构造方法
- 有构造方法,但是不能实例化。
Animal animal = new Animal();//错误的定义 Animal c = new Cat();//子类
- 不能实例化构造方法的用处,用于子类访问父类数据的初始化
成员方法- 抽象方法:限定子类必须完成此方法。
// 这是抽象类的抽象方法;
public abstract void eat();
- 有非抽象方法:提高代码的复用性。
public void Test() {
name = "cat";
System.out.println(name + age);
System.out.println("这是抽象类里的非抽象方法");
}
示例代码
public abstract class Animal {
public String name;
public final Integer age = 30;
// 无参构造
public Animal() {
}
public Animal(String name) {
this.name = name;
}
// 这是抽象类的抽象方法;
public abstract void eat();
//
public void Test() {
name = "cat";
System.out.println(name + age);
System.out.println("这是抽象类里的非抽象方法");
}
}
接口(interface)
接口的特点
- 需要实现类来实例化;
Interface interface = new InterfaceImpl();//
- 抽象类实现接口的时候不用重写,但抽象类的子类需要重写接口的方法。
- 只能是常量(默认修饰符:public static final)
public static final Integer h = 50;
Integer h=60;//一样
构造方法
- 接口没有构造方法,接口主要是对行为进行抽象的,是没有具体存在的。 一个类如果没有父类,默认继承自Object类(所有的类都继承自Object类)
- 只能是抽象类(默认修饰符:public abstract)
//
public abstract void method();
// 默认修饰符:public abstract
void show();



