本篇文章是整合Java中的一些基础知识基本的类和一些语句的基础讲解特别适合一些新学Java的同学
注意本片博客会不定时进行更新,但是只更新已更新之外的知识代码
-----------------------------------------------------------------------------------------------------------------------------------------
抽象类概述
- 抽象类概念: 包含抽象方法的类,用abstract来进行修饰
- 抽象方法的概念: 抽象方法,只有方法声明,没有方法体的方法。同样用abstract来进行修饰。
- 抽象方法的由来: 当需要定义一个方法,却不明确用什么方法的具体实现时,可以将方法定义为abstract,具体实现延迟的它的子类。
**注意:**抽象类不一定有抽象方法,但有抽象方法的一定是抽象类。
抽象类的特点:
- 修饰符:必须通过 abstract 关键字来进行修饰。
公式1:(修饰类)修饰符abstract class 类名{}
公式2:(修饰成员方法)修饰符 abstract 返回类型 方法名() - 抽象类不能被实例化,只能通过创建子类对象。(抽象的意思就是不具体,所以不能 new )
- 抽象类子类的两个选择:
一:重写父类的所有抽象方法
二:把类定义为抽象类
抽象类成员的特点:
- 成员变量:
可以有普通的成员变量
也可以有成员常量 - 成员方法:
可以有普通方法,也可以有抽象方法
可以既可以有抽象方法, 也可以有非抽象方法
有构造方法 并且构造方法可以重载
先放一个代码然后再进行分析
abstract class fu {
public fu(){
};//定义一个空参构造
public fu(String name) {
//定义一个有参构造,并完成方法重载。
this.name=name;
}
//成员变量
String name="章三";
//int age 为变量 final int age 为成员常量 不能发生改变
final int age=60;
//定义一个吃的抽象类
public abstract void eat();
//定义一个睡的抽象类
public abstract void sleep();
//定义一个叫的非抽象方法
public void call() {
System.out.print("会叫");
}
}
class zi extends fu{
@Override //抽象子类如果是普通类必须重写父类所有抽象方法
public void eat() {
System.out.println("猫吃老鼠");
}
public void sleep() {
System.out.println("猫站着睡觉");
}
}
abstract class zhi extends fu{
//抽象子类如果是抽象类可以不重写父类抽象方法
}
public class bb{
public static void main(String[] args) {
//fu Fu = new fu(); 抽象类不能实例化 (就是不能 new)
//初始化抽象类
fu test = new zi();
System.out.println("--------------------------------------");
}
抽象类特点代码解析
1:必须用修饰符abstract 关键字来进行修饰。
公式一:修饰类
abstract class fu {
}
公式二:修饰方法
public abstract void eat();
2:抽象类不能被实例化,只能通过创建子类对象
public class bb{
public static void main(String[] args) {
//fu Fu = new fu(); 抽象类不能实例化 (就是不能 new)当出现这个对象时在此代码就会报错。
//初始化抽象类,实现类必须通过子类。
fu test = new zi();
- 抽象类子类的两个选择:
一:重写父类的所有抽象方法
class zi extends fu{
@Override //抽象子类如果是普通类必须重写父类所有抽象方法
public void eat() {
System.out.println("猫吃老鼠");
}
public void sleep() {
System.out.println("猫站着睡觉");
}
}
二:把类定义为抽象类
abstract class zhi extends fu