/*
一个类最多直接只能有一个父类,但是可以有多个间接的父类
java只支持单继承,也支持多重继承
接口:
作用是拓展类的功能
定义:
interface 接口名:
{
}
接口的使用规则:
1. 接口是一种特殊的【类】; 是类那么就有类的相关使用规则:定义成员方法和变量;
2. 接口中的成员变量默认的修饰符是 public static final ,即都是常量,如果没有写修饰符,编译器会自动加上;
如果有一个没写,编译器会加上,如果有多个没写,编译器也会加上;
3. 接口中的方法的修饰符为: public abstract ; 即公开的抽象方法,如果有一个修饰符没写,编译器会自动加上;
4. 因为接口含有抽象方法,因此不能实例化;
5. 接口中没有构造方法;
原因:接口中的变量都是常量,无需初始化,方法都是抽象方法不能使用,而抽象类的构造方法的作用是提供子类初始化成员变量的功能,
显而易见构造方法在接口中没有任何存在的意义,因此,接口中是没有构造方法的;
6. 接口的作用是让类去实现的,当接口去实现一个类的时候,必须要把接口中的所有抽象方法全部实现了.
接口实现的格式:
class 类名 implements 接口名
{
}
接口的作用:
1. 可以拓展类的功能(次要功能);
2. 可以定义约束规范,让功能相同的功能同一规则(重要功能);
3. 程序的解耦(核心功能);
类与接口之间的关系: 多实现
类实现接口要注意的事项:
1. 非抽象类实现一个接口,必须保证实现所有的方法;
2. 抽象类实现一个接口时,可以实现也可以不实现接口中的方法;
3. 一个类可以实现多个接口;
问题:java为什么是单继承、多实现呢?
单继承: 避免多个类中存在同名的成员产生冲突:
多实现: 如果接口只是抽象的方法,如果多个接口出现冲突,实现一个就可以了。
接口与接口之间的关系 多继承
接口:
1. 一个接口可以继承一个接口;
2. 一个接口可以继承多个接口;
*/
interface A
{
//成员变量;
public static final int i=10;
//成员函数
abstract public void log();
}
class Demo6 implements A
{
public static void main(String[] args)
{
System.out.println("Hello world!");
Demo6 d6 = new Demo6();
d6.log();
}
public void log()
{
System.out.println("我是你爷爷!");
}
}