Java的接口

Java的接口,第1张

Java的接口 接口

(01)接口:被interface修饰叫做接口。

接口:用接口表示现实生活中的【标准】或【规范】。(目的在于统一标准)

(02)成员变量:默认被**public static final**修饰。

注意:接口中的成员变量被static修饰,说明是静态的,属于类,就是说只有一份(可以参照CSDN中的Java的static关键字理解),被final修饰说明是常量,不可更改

(03)成员方法:默认被**public abstract**修饰。

注意:接口中的所有方法默认被abstract修饰,即所有的方法都是抽象方法,说明没有方法体

public interface Person {
	
	public static final int a = 100;//实际项目中public static final可以省去
	
	public abstract void m(double d);//实际项目中public abstract可以省去

}

(04)接口中**没有构造方法、不能创建对象**。

思考:接口不能创建对象、那么接口有什么用?答:纯设计。

(05)类(具体类和抽象类)使用**implements**实现关键字来实现接口。

理解:先用接口设计、然后类实现接口。

//驾驶汽车的接口,里面有一个驾驶汽车的方法,
public interface Car {
    void driver();//省去了public abstract
}

//具体类实现接口,并覆写方法
public class Benz implements Car{
    @Override
    public void driver() {
        System.out.println("驾驶奥迪");
    }
}

(06)创建对象的语法格式

类名 变量 = new 当前类的构造方法

父类 变量 = new 子类的构造方法

接口 变量 = new 实现类的构造方法

    public static void main(String[] args) {
        Car car = new Benz();
        car.driver();
    }

(07)具体类、抽象类、接口的实现

具体类抽象类接口成员变量都可以都可以public static final成员方法全部实现部分实现public abstract构造方法有有没有创建对象能不能不能意图目的实现设计(继承)设计应用场景可以实现全部方法既需要一部分设计也需要一部分方法的实现纯设计,不需要任何方法的实现

(08)方法分类总结
第一种:没有返回值的方法、有返回值的方法
第二种:静态方法(属于类)、非静态方法(属于对象)
第三种:实现方法、抽象方法(没实现的方法)

(09)final关键字

①final修饰变量:表示常量、不能更改。

②final修饰方法:子类的方法不能覆盖父类的方法。

如下:父类方法加了final关键字修饰,子类写了相同的方法就会报错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8rN7QQIo-1640600971012)(C:Users18707AppDataRoamingTyporatypora-user-imagesimage-20211227174148936.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WFXeQIau-1640600971013)(C:Users18707AppDataRoamingTyporatypora-user-imagesimage-20211227174234639.png)]

③final修饰类:不能被继承。

(10)this关键字

this:表示当前类的对象、表示new创建出来的对象。

示例:在student类中有参的构造方法

    //在student类中有参的构造方法
	public Student(String name, Integer age, String school) {
        this.name = name;
        this.age = age;
        this.school = school;
    }

	//在测试类中通过有参的构造方法创建了一个对象student
	//此时,构造方法中的this就代表student
	//this.name = name就相当于 student.name = 刘亦菲
	//如果不加this,变成 name = name,程序无法区分谁是成员变量,谁是局部变量
	public static void main(String[] args) {
        Student student = new Student("刘亦菲",20,"清华");
}

作用一:区别成员变量和局部变量。

作用二:用于构造方法之间的调用。

  public Student() {
        this("刘萌萌",20,"清华");//在无参构造方法里调用有参的构造方法
    }

    public Student(String name, Integer age, String school) {
        this.name = name;
        this.age = age;
        this.school = school;
    }

(11)super关键字

super:表示父类的引用。

作用:用于调用父类的构造方法。

注意:如果类中不写构造方法、java会默认提供一个public无参的构造方法。(意思是一个构造方法都不写,系统会提供一个,如果写了就不在提供)

注意:子类的构造方法的首句会默认调用super()父类无参构造方法

注意:Java中所有类都是从**Object**顶级父类继承下来的

注意:如果类没有父类、java会默认让它继承Object类

(12)类(具体类和抽象类)和接口之间的关系

类与类之间是继承关系

接口与接口之间是继承关系

类与接口之间是实现关系

注意:类只能继承一个父类、接口可以继承多个父接口

(13)具体类、抽象类、接口同时使用的代码模板

class A extends B implements C, D, E, F

第一步:接口 设计

第二步:抽象类 部分实现

第三步:具体类 全部实现

(14)包的使用

定义包:package 包名(com)

导入包:import 包名.类名(com.Person)

导包的场景:如果需要的类在外包则必须导入才能使用。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5683727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存