Java基础 13

版权声明: https://blog.csdn.net/qq_40794602/article/details/86765809

接口概述:

  • 从狭义的角度讲就是指java中的interface
  • 从广义的角度讲对外提供规则的都是接口
  • 接口就是提供对外访问的规则

接口的特点:

  • 接口用关键字interface表示,interface 接口名{}
  • 类实现接口用implements表示,class 类名 implements 接口名{}
  • 接口不能实例化,按照多态的方式来实例化
  • 接口的子类,可以是抽象类,但意义不大,可以是具体类,要重写接口中的所有方法

接口的代码EG:

public class J1{
	public static void main(String[] args){
		B b = new B();
		b.eat();
	}
}

interface A{
	//1.在接口里声明的方法都是抽象方法
	//2.在声明方法时,不加abstract,系统默认是抽象方法
	//3.你在方法里写不与abstract的效果是一样的
	public void eat();
}

class B implements A{
	public void eat(){
		System.out.println("吃东西...");
	}
}

 

类与类,类与接口,接口与接口的关系:

  • 类与类:继承关系,只能是单继承,可以多层继承
  • 类与接口:实现关系,可以单实现,也可以多实现;并且还可以在继承一个类的同时实现多个接口
  • 接口与接口:继承关系,可以单继承,也可以多继承

抽象类于接口的区别:

成员区别:

  • 抽象类:成员变量可以是变量,也可以常量,有构造方法,成员方法可以是抽象,也可以非抽象
  • 接口:成员变量只可以常量,成员方法只可以抽象,没有构造函数

关系区别:

  • 类与类:  继承关系,单继承
  • 类与接口:   实现关系,单实现和多实现都可以
  • 接口与接口: 继承关系,单继承和多继承

设计理念区别:

  • 抽象类 抽象类中定义的是该继承体系的共性功能
  • 接口 接口中定义的是该继承体系的扩展功能

接口和继承EG:

public class J1 {

	public static void main(String[] args) {
		小姐姐 Pn = new 小姐姐();
		Pn.drive();
		Pn.豪车();
		Pn.豪宅();
	}
}

class 亲爹{
	
	public void drive(){
		System.out.println("开着三轮车...");
	}
	
}

interface 干爹1{
	
	public void 豪车();
}

interface 干爹2{
	public void 豪宅();
}

class 小姐姐  extends 亲爹 implements 干爹1,干爹2{

	@Override
	public void 豪车() {
		System.out.println("恭喜,干爹1给你豪车...");
		
	}

	@Override
	public void 豪宅() {
		System.out.println("恭喜,干爹2给你豪宅...");
		
	}
	
}
//继承就像是亲爹,只能有一个,接口就像是干爹可以有多个

独立的Java文件:

  • 前面学习的类基本都是写在一个有main方法的文件里
  • 实际的开发中,一个项目是由n个Java文件构成的
  • 一般情况下会把一个类写在一个独立的Java文件

package包的作用:

  • 包其实就是文件夹
  • 包的作用是将字节码(.class)进行分类存放
  • 包的作用可以使在同一个项目中有相同的类
  • 包的作用有利于以后功能模块的划分

定义包的格式:

  • 包名一般用公司域名的倒写,如.www.baidu.com的域名
  • 包名写成com.baidu.功能模块名(com.baidu.student)

定义包的注意事项:

  • 通过eclipse创建包,然后在包下面创建的java文件,默认会在第一行加入 package代码
  • 如果在一个包的类中使用另一个包的类,需要使用import导入包的类,如:import com.baidu.model.Student
  • package语句必须是放在第一行的代码位置
  • package语句在一个java文件中只能有一个
  • 项目中的src和bin目录区别:src是源代码,bin是存放编译后的class文件

import关键字概述:

  • import关键字是用来导入类的
  • import使用的两种方式:1.  import com.baidu.model.Student 只导入一个类;2.  import com.baidu.model.* 导入包的所有类,不建议使用这种方法
  • 创建类的另一种方式,在类名前加包名:com.baidu.model.Student stu = new com.baidu.model.Student();java.util.Scanner s = new java.util.Scanner(System.in)
  • 包的类能被其它包访问,一定是public的类,pulbic修饰的类代表其它包可以访问此类

面试题:package,import,class有没有顺序关系?

  • package只能有一个,必须放在java文件的第一行
  • import只能放在package的下面,多个import应放在一起
  • class 放在 package 或者import的下面

四种权限修饰符图表:

  • 所谓的权限就是别人是否能访问类、属性、方法
  • 主要先掌握private和public就可以了
  • 一般写方法时,最好写上private或者public
  • 写类的时候,会在类名前加public

常见修饰符:

  • 权限修饰符:private,默认的,protected,public
  • 状态修饰符:static,final
  • 抽象修饰符:abstract

 

猜你喜欢

转载自blog.csdn.net/qq_40794602/article/details/86765809