package com.jieko; /** * * 1.接口没有构造器,抽象类可以有构造器 * * 2.接口声明:Interface * * 3.在JDK8之前,接口中只有两部分内容 * * 常量:固搭格式:public static final * * 抽象方法:固搭格式:public abstract * * 4.只要可以通过new关键字创建对象,就会有一个对应的构造器被执行, * * 但是有构造器不一定能实例化 * */ public interface TestInterface { //变量 public static final int NUM = 10; //抽象方法 public abstract void a(); interface TestInterface01{ public abstract void b(); } /** * 5.类和接口的关系: * 实现关系 类实现接口 * 6.implements关键字就是实现的意思 * 7.一旦实现一个接口,那么实现类就要重写接口中所有的抽象方法 * 8.如果没有全部重写接口的抽象方法,那么可以将这个实现类定义为抽象类 * 9.java只有单继承,但是有多实现,接口有多继承 * 10.先有继承后有实现,就是继承要在implements前 * 11.接口无法实例化 */ /*abstract*/ class Student extends Father implements TestInterface,TestInterface01 { @Override public void a() { System.out.println("sjh"); } public void b(){ System.out.println("45"); } /** * 继承: * 子类对父类的继承 * 实现: * 类对接口的实现 */ public static void main(String[] args) { //接口中的常量如何访问? TestInterface t = new Student();//接口---》实现类 多态 t.a(); System.out.println(TestInterface.NUM); System.out.println(Student.NUM); Student s = new Student(); s.a(); } /** * 多态应用场合: * 1.父类作为方法的形参,传入具体的子类对象 * 2.父类作为方法的返回值类型,返回的是具体的对象 * 3.接口作为方法的形参,传入的是具体的实现类的对象 * 4.接口作为方法的返回值类型,返回的是具体的实现类的对象 */ } }
* 在JDK 1.8之后加入了非抽象方法 * 1.public default修饰的非抽象方法 * 2.静态方法 * 注意: * 1.非抽象方法default修饰符必须要写 * 2.实现类中重写非抽象方法,default修饰符不需要写,否则会出错 * 3.静态方法不能重写