继承、抽象类、final关键字

继承

子类继承父类,就可以具有父类的属性和方法,还可以在子类中定义自己特有的属性和方法。

优点:提高复用性、扩展性、维护性

语法:

public class Person{
    
}

public class Student extends Person{
    public Student(){//子类无参构造
        //super();   子类默认调用父类的无参构造
    }
}
public class Teacher extends Person{
    
}

特点:子类继承父类,拥有父类所有非私有成员,不能继承父类构造方法但是子类初始化的时候(不管是通过有参构造还是无参构造),如果继承有父类,都会先去调用父类的无参构造。

java只支持单继承,不支持多继承,但是java中类支持多层继承

构造方法、private、不在同包不能继承

super关键字

super写在子类中,代表父类,用于区分子类与父类的成员。

1.super():父类的构造方法,给父类成员变量赋值

2.super.成员名 调用父类非私有成员

this关键字

this写在本类中,代表本类,用于区分成员变量与局部变量,例如setter方法中 this.age = age;

1.this() :调用本类的构造方法

2.this.成员名 调用本类的成员

小节:this与super都有一个特点(区分变量)两个调用(调用成员与构造方法)

访问修饰符

子类重写父类方法

语法:

1、方法签名(返回类型,方法名,参数列表)与父类方法签名完全一致。

2、访问权限不得低于父类权限

@Override 注解检验方法重写是否成功

抽象类

强制子类必须重写抽象类里的所有抽象方法,它是一个约定,也是一个规范

特点

1.抽象类不能实例化 不能new

2.能像普通类一样定义成员变量、成员方法、构造方法(虽然不能实例化,但是可供子类用super( )调用)多一个能定义抽象方法

抽象方法:

特点:

1.使用abstract修饰,没有方法体

2.在抽象类内定义

3.子类必须重写,除非子类也只抽象类

public abstract class Worker{
    public abstract void work();
}

public class Teacher extends Worker {
    @Override
    public void work(){
        
    }
}

final关键字

使用场景

1.类不想被继承

2.方法不想被重写

3.变量不想被修改

public final class Student(){}
 public final void Work(){}
final int a = 0; 
posted @   sincerekinn  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示