JAVA笔记-抽象类

抽象类
一、抽象类声明格式:abstract class xx
二、抽象类特点:1.被abstract修饰

2.抽象类中不一定有抽象方法,但有抽象方法一定是抽象类
				abstract class A{
					public void B(){}
					public abstract void B(){} //编译报错,抽象方法不能有方法体
					public abstract void B();  //正确写法
				}//可以编译
				class A{
					public abstract void B();
				}//编译报错,有抽象方法必是抽象类	
3.抽象类的实例化

a:抽象类不能直接实例化           

                                           abstract class A{}
					class abstractDemo{
						public static void main(String[] args){
							A a=new A();//出错
						}
					}

b:抽象类可以通过多态的方式实例化                                                                                          

					abstract class A{}
					class B extends A{}
					class abstractDemo{
						public static void main(String[] args){
							A a=new B();//多态向上转型
						}
					}

4.抽象类子类
a:抽象类子类也应是一个抽象类(不重写抽象方法)
abstract class A{}
abstract class B extends A{}
b:子类不是抽象类,是具体的类(应该重写抽象方法)
						abstract class A{
							public abstract void a{}
						}
						class B extends A{
							public void a{
								syso("重写抽象方法");
							}
						}



三、抽象类的成员特点:
1.成员变量:
既可以是变量也可以是常量
abstract class A{
				public int num=10;
				public final int num2=20;
			}
			class B extends A{}
			class abstractDemo{
				public static void main(String[] args){
					syso(num+" "+num2);//输出10 20
				}
			}



2.构造方法:有
用来子类访问父类数据初始化

3.成员方法:
抽象方法:强制要求子类做的事情
普通成员方法:子类继承的事情,提高代码复用性
abstract class Person{
				public abstract void breath();//每人都要呼吸,即强制子类做事。
				public void eat(){
					syso("吃饭");
				}//提高代码复用性
			}
			class Student extends Person{
				public void breath(){
					syso("需要呼吸")
				}
			}
			class Teacher extends Person{
				public void breath(){
					syso("需要呼吸")
				}
			}

     四、抽象类练习员工案例

/*
	假如我们在开发一个系统时需要对员工类进行设计,员工包含3个属性:姓名、工号以及工资。
	经理也是员工,除了含有员工的属性外,另为还有一个奖金属性。
	请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
	
	分析:
		普通员工类
			成员变量:姓名、工号以及工资。
			成员方法:工作
		经理类:
			成员变量:姓名、工号以及工资,奖金属性
			成员方法:工作
			
	实现:
		员工类:
		职员类:
		经理类:
*/

//员工类
abstract class Employee{
	//成员属性姓名,员工号,工资
	private String name;
	private int employeeid;
	private double salary;
	
	public Employee() {}
	public Employee(String name,int employeeid,double salary) {
		this.name=name;
		this.employeeid=employeeid;
		this.salary=salary;
	}
	//抽象方法工作
	public abstract void work();
	public void show() {
		System.out.println("姓名:"+name+" 职员号 :"+employeeid+" 薪水:"+salary);
	}
}

//职工类
class Worker extends Employee{
	public Worker() {}
	public Worker(String name,int employeeid,double salary) {
		super(name,employeeid,salary);
	}
	public void work() {
		System.out.println("职员做基层工作");
	}
}

//经理类
class Manager extends Employee{
	//特有属性奖金
	private double bonus;
	
	public Manager() {}
	public Manager(String name,int employeeid,double salary,double bonus) {
		super(name,employeeid,salary);
		this.bonus=bonus;
	}
	public void work() {
		System.out.println("经理做管理工作");
	}
	//特有方法
	public void getBonus() {
		System.out.println("奖金:"+bonus);
	}
}

class Test{
	public static void main(String[] args){
		//普通员工,用多态
		Employee worker=new Worker("Mike",3,4000);
		worker.show();
		worker.work();
		System.out.println("---------------------");
		//测试经理,自己调用,因为有特有方法
		Manager manager=new Manager("Jike",1,8000,2000);
		manager.show();
		manager.getBonus();
		manager.work();
	}
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java计算机二级笔记主要包括Java语言基础、面向对象编程、Java集合框架和异常处理等内容。 Java语言基础部分主要包括Java的特点、发展历程、安装和配置开发环境等相关知识。学习者需要了解Java的特点,如面向对象、简单易学、平台无关性等。同时,了解Java的发展历程可以帮助学习者更好地理解Java的优势和应用场景。安装和配置开发环境是学习Java的第一步,学习者需要掌握如何安装JDK(Java Development Kit)和配置开发工具(如Eclipse、IntelliJ IDEA等)。 面向对象编程是Java的核心,学习者需要了解面向对象的基本概念和原则,如封装、继承、多态等。此外,还需要学习类和对象的创建和使用,掌握Java中的访问修饰符、构造方法、成员变量和成员方法等。 Java集合框架是Java中常用的数据结构和算法的封装,学习者需要掌握常用的集合类(如List、Set、Map等)的特点和使用方法,了解集合类的底层实现原理,掌握集合类的常用操作和遍历方式。 异常处理是Java中处理程序错误和异常情况的机制,学习者需要了解Java中的异常类型和异常处理的方式,掌握try-catch语句的基本用法,理解异常处理的原则和技巧。 在学习Java计算机二级的过程中,学习者可以通过阅读教材、参加培训班或自学网上资源等方式进行学习。此外,还可以通过编写小型的Java程序进行实践练习,加深对Java语言和相关知识的理解和掌握。总之,Java计算机二级的学习需要持续的练习和实践,不断提升编程能力和解决问题的能力。 ### 回答2: Java计算机二级是一种计算机等级考试,主要考察考生在Java编程方面的基本知识和技能。以下是关于Java计算机二级的笔记内容: 1. Java基础知识: - Java语言的起源和发展历史; - Java开发环境的搭建与配置; - Java的命名规范和常用关键字; - 数据类型和变量的定义与使用; - 运算符的种类和使用方法; - 控制流程语句,包括条件语句和循环语句。 2. 面向对象编程: - 类和对象的概念; - 封装、继承和多态的原理和实现; - 构造方法、静态方法和实例方法的区别和应用; - 抽象类和接口的定义和使用。 3. 异常处理: - 异常的分类和处理机制; - try-catch语句与异常捕获; - 异常的抛出和捕获; - 自定义异常及其使用。 4. 数组和集合: - 数组的定义和使用; - 多维数组的应用; - 集合的种类和特点; - List、Set和Map等集合框架的使用。 5. 文件操作: - 文件的读写操作; - 文件流的使用; - 字符流和字节流的区别和应用。 6. 网络编程: - 基本的网络通信概念; - Socket编程的原理和实现; - 常用HTTP请求和响应的处理。 以上是关于Java计算机二级的一些重要笔记内容,通过对这些知识点的学习和掌握,考生可以更好地准备和应对Java计算机二级考试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值