总结接口与类和抽象类的关系

1.***接口
(1)成员特点:
成员变量
只能是常量 默认修饰符 public static final
构造方法
没有构造方法,因为接口主要是扩展功能的,而没有具体存在
成员方法
只能是抽象方法 默认修饰符 public abstract

2.***类与类,类与接口以及接口与接口的关系
类与类:单继承,多层次
public class A extends B{} public class B extends C{}

类与接口:多实现
public class A implements 接口1,接口2{}

接口与接口:多继承
public interface 接口1 extends 接口2,接口3{}

同时存在继承,实现:先继承,后实现 。
public class A extends 类 implements 接口1,接口2{}

3.***面试题:抽象类和接口的区别? / abstract class和interface的区别 ?
子类: 单一继承 多重实现
构造器: 抽象类可以有构造器 接口不能有构造器
与正常Java类的区别: 除了你不能实例化抽象类之外,它和普通Java类没有任何区别
接口是完全不同的类型 :
访问修饰符:抽象方法可以有public、protected和default这些修饰符 .
接口方法默认修饰符是public。你不可以使用其它修饰符。
main方法:抽象方法可以有main方法并且我们可以运行它
接口没有main方法,因此我们不能运行它。
多继承:抽象类可以继承一个类和实现多个接口.
接口可以继承一个或多个其它接口 .

抽象类属性:不用限制
接口的属性:静态常量

成员区别
抽象类 变量,常量;有抽象方法;抽象方法,非抽象方法
接口 常量;抽象方法

关系区别
类与类 继承,单继承
类与接口 实现,单实现,多实现
接口与接口 继承,单继承,多继承

设计理念区别
抽象类 被继承体现的是:”is a”的关系。
共性功能 接口 被实现体现的是:”like a”的关系。扩展功能 /(类似一种什么,什么).

形式参数

4.**形式参数和返回值问题案例
形式参数:基本(8个)和引用(类,接口,数组)

引用类型作为形参:类,接口,数组

类:需要的是该类的对象.

public void show(Dog dog){}

调用对象.show(new Dog());

抽象类:需要的是该抽象类的子类对象

public void show(Person person){}

show(new 子类名());

接口:需要的是接口的子类对象

public void show(PCI pci){}
show(new SoundCard());

public UserDao getUserDao(){
return UserDaoImpl();//接口的实现类对象
}

public void show(PCI pci){}
对象.show(new SoundCard());

public UserDao getUserDao(){
return UserDaoImpl();//接口的实现类对象
}

因为抽象类和接口不能实例化

原文地址:https://www.cnblogs.com/hdj1073678089/p/7300614.html