JAVA基础(6)

本文主要介绍了Java中的修饰符、抽象类和接口。详细阐述了static修饰的静态变量、方法和代码块,抽象类的特点、意义及应用,接口的实现、优点和特点,还提到了final修饰符的作用,有助于理解Java编程中的这些重要概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修饰符

访问控制符修饰成员时的访问权限

修饰词本类同一个包中的类子类其他类
public可以访问可以访问可以访问可以访问
protected可以访问可以访问可以访问不可访问
默认可以访问可以访问不可访问不可访问
private可以访问不可访问不可访问不可访问
static

1、静态的变量

由static修饰,属于类,存储在方法区中,只有一份,通过类名 . 进行调用,当所有的对象共享的资源的时候(图片,时评,音频)

2、静态的方法

由static修饰,属于类,存储在方法区中,只有一份,通过类名 . 进行调用,方法的操作只与参数相关与对象无关

3、静态代码块

属于类,在类加载期间进行调用,类只能被 加载一次,所以静态代码块也执行一次 ,初始化,加载静态资源的时候调用

代码应用

public class StaticDemo {
	public static void main(String[] args) {
		Too t1 = new Too();
		Too t2 = new Too();
		Too t3 = new Too();
		System.out.println(t1.id+","+t2.id+","+t3.id);
	}	
}
class Too{
	int id;
	static  int i = 0;
	public Too(){
		id = i++;		
	}
}

抽象类

抽象类应用

1、abstract修饰,只有方法的定义,没有方法的

2、抽象类:

abstract修饰

包含抽象方法的类,必须是抽象类。不包含抽象方法的类,也可以声明为抽象类

抽象类是不能被实例化的

抽象类是需要被继承的,继承了抽象类的子类,重写所有的抽象方法;变普通类为抽象类

1)abstract:关键字,用于修饰方法和修饰类

2)抽象方法:不同的方法是相似的,但是具体实现的内容不同

3)所以我们只能抽取他们的声明,没有具体的方法体。

4)抽象类:有抽象方法的类就是抽象类

5)一个类继承了抽象类,需要重写抽象类中的抽象方法

3、意义

抽象类是封装了子类中所共有的属性和行为------代码复用,

为所有的子类提供一种统一的类型-------向上造型

可以包含抽象方法为所有子类提供统一的入口

4、扩展

1、程序的设计规则

1)将所有的子类(派生类)所共有的属性和行为,抽到父类中(也叫超类)

2)所有的子类行为都一样,可以设计为普通类,如果所有的子类行为都不一样,设计为抽象方法

代码应用

package cn.llhc.det05;
public class AbstractDemo {
public static void main(String[] args){	
}
}
//抽象类
abstract class Animals{
public abstract void eat();
public void sleep(){	
}
}
class Dog extends Animals{
public void eat() {
	System.out.println("狗吃骨头");
}
}
class Cat extends Animals{
public void eat() {
	System.out.println("猫吃鱼");
}
}
抽象类的特点:

1、抽象方法之鞥放在抽象类中

2、抽象类和抽象方法都是被abstract修饰的

3、抽象类不能创建对象(不能被实例化)

4、抽象类可以有非抽象方法

5、抽象类和类的关系是继承

6、如果一个类继承了抽象类,要么重写所有抽象方法,要么就他本身设置成抽象类

代码应用

package cn.llhc.det05;
public class AbstractDemo01 {
	public static void main(String[] args){
		//创建一个篮球运动员对象
		Programmer p =new Programmer();
		p.name = "库里";
		p.age =30;
		p.gender = '男';
		p.salary = 12335;
		p.employees();
		p.printInfo();
		System.out.println("----------");
		Manager m =new Manager();
		m.name = "小明";
		m.age =20;
		m.gender = '男';
		m.salary = 12;
		m.employees();
		m.printInfo();
	}
}
abstract class Employees{
	String name;//姓名
	int age;//年龄
	char gender;//性别
	double salary;
	public abstract  void employees();
	public void printInfo(){
		System.out.println("姓名"+name+"年龄"+age+"性别"+gender+"工号"+salary);
	}
}
class Programmer extends Employees{
	public void employees() {
		// TODO Auto-generated method stub
		System.out.println("我是一名程序员!");
	}
}
class Manager extends Employees{
	double bonus;
	public void employees() {
		// TODO Auto-generated method stub
		System.out.println("我是一名项目经理!");
	}
}
接口

接口:接成是特殊的抽象类,即只包含有抽象方法的抽象类;接口不可以定义成员变量,但可以定义常量:接口之间是可以继承的

接口的实现
1)与继承不同,一个类可以实现多个接口,实现的接口直接用逗号分隔。当然,
 该类需要实现这些接口中定义的所有方法;
2)一个类可以通过implements关键字”实现”接口。一个类实现了某个接口
 后必须实现该接口中定义的所有方法。
 
 
 class BigBall implements Baller,... {
 	public void run() {
 		System.out.printn("run..");
	 }
 }
接口的优点

1)类与接口的关系:实现关系,而且是多实现,一个类可以实现多个接口,类鱼类之间是继承关系,java中的继 承是单一继承,一个类只能有一个父类,打破了继承的局限性。

​2)对外提供规则(usb接口)

3)降低了程序的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高了开发的效率)

接口的特点

接口不可以被实例化

1)接口可以多实现,但继承是单继承

2)接口中可以定义方法,方法也有固定的修饰词 public abstreact

3)子类必须覆盖掉接口中所有的抽象方法,子类才可以实例化,否则子类是一个抽象类

4)接口中可以定义变量,但是变量必须有固定的修饰符,也称为常量,值不发生改变

final

1)修饰符,可以用于修饰类,成员变量,成员方法

2)只要是被final修饰的类,不能被继承,也不能有子类

3)final修饰的类,不能被重写

4)final修饰的变量,不可以被修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值