目录
1.object类
一、Object类的地位
所有类的父类
2.抽象类
一、定义与声明
抽象类的概念
二、抽象方法
抽象方法的特点
三、继承抽象类
子类的责任
3.抽象方法基础理念
1.抽象方法的特征
2.将abstaract加在方法的前面,该类无法被继承
1.首先,我们要理解什么是抽象方法!
2.抽象方法的重要知识点
4.final关键字
final关键字可以应用于类、方法和变量
final类:声明为final的类是无法被继承的,即该类不能有子类。final类常常用于不希望被修改或继承的情况,例如String类就是一个final类。
2.final方法:声明为final的方法不能被子类重写或覆盖,即该方法的实现是最终的。final方法常常用于不希望子类改变父类的行为的情况。
3.final变量:声明为final的变量是一个常量,即其值一旦被初始化后就无法再被修改。final变量必须在声明时或构造方法中进行初始化,而且不能多次赋值。
1.object类
一、Object类的地位
所有类的父类
在Java中,Object类是所有类的根类。这意味着,任何一个类,如果没有明确地继承其他类,那么它默认继承Object类。例如,我们创建一个简单的类:
class MyClass {
// 这里没有显示继承其他类,但它实际上继承了Object类
}
- 这种继承关系是Java语言的基本特性,它建立了Java类层次结构的基础。
2.抽象类
一、定义与声明
抽象类的概念
抽象类是一种不能被实例化的类,它主要用于被其他类继承。在Java中,使用 abstract 关键字来定义抽象类。
abstract class Shape {
// 抽象类的成员变量、方法等
}
- 抽象类通常包含抽象方法和非抽象方法以及成员变量。
二、抽象方法
抽象方法的特点
抽象方法是没有方法体的方法声明,它以 abstract 关键字开头,并且必须在抽象类中
abstract class Animal {
abstract void makeSound();
}
- 抽象方法的存在是抽象类的一个重要特征,它强制子类去实现这些方法,提供了一种定义规范的方式。
三、继承抽象类
子类的责任
当一个类继承抽象类时,子类必须实现抽象类中的所有抽象方法(除非子类也是抽象类) 。
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("汪汪汪");
}
}
- 这种继承关系确保了在多态场景下,抽象类可以作为一种通用的类型,而子类则提供具体的实现。
3.抽象方法基础理念
1.抽象方法的特征
1.抽象方法没有方法体;
2.抽象方法必须位于抽象类中;
3.抽象方法必须在子类中被实现,除非子类是抽象类
2.将abstaract加在方法的前面,该类无法被继承
public abstract void print();
//没有方法体
1.首先,我们要理解什么是抽象方法!
1.抽象方法的基本理念是将方法的声明与方法的具体实现分离,通过定义抽象方法来描述类应该具有的行为或功能。这样可以实现封装接口、提高代码的扩展性、实现多态性和强制子类实现
2.抽象方法的基本理念是将方法的声明与方法的具体实现分离开来,通过定义抽象方法来描述一个类应该具有的行为或功能,而具体的实现将留给子类来完成。
2.抽象方法的重要知识点
1. 抽象方法是在抽象类或者接口中声明的方法,不包含方法体,只有方法的声明。
2. 抽象方法用于定义一种行为或者功能,但是具体的实现是由子类来完成。
3. 抽象方法必须被子类实现或者覆盖,否则子类也必须声明为抽象类。
4. 抽象方法不能被实例化,也就是不能直接创建对象。
5. 抽象方法必须被声明在抽象类或者接口中,所以抽象类或者接口也必须是抽象的。
6. 如果一个类继承了抽象类或者实现了接口,那么它必须实现抽象类或者接口中的所有抽象方法,否则该类也必须声明为抽象类。
7. 抽象方法可以有参数和返回值,就像普通的方法一样。
8. 抽象类可以包含非抽象方法,子类可以直接继承和使用这些非抽象方法,不需要重写。
4.final关键字
final关键字可以应用于类、方法和变量
-
final类:声明为final的类是无法被继承的,即该类不能有子类。final类常常用于不希望被修改或继承的情况,例如String类就是一个final类。
public final class Penguin extends Pet{
//......
}
2.final方法:声明为final的方法不能被子类重写或覆盖,即该方法的实现是最终的。final方法常常用于不希望子类改变父类的行为的情况。
public final void print(){
//......
}
3.final变量:声明为final的变量是一个常量,即其值一旦被初始化后就无法再被修改。final变量必须在声明时或构造方法中进行初始化,而且不能多次赋值。
public class Penguin{
final String home="长沙";
public void setHome(String name){
this.home.home;//错误,home不能再进行赋值
}
}