java继承-cnblog

类的继承

在这里插入图片描述

继承本身

一个类要继承另一个类需要使用关键字extends

关键字extends的使用

class a extend b{}

由于java只支持单继承,所以同时继承多个父类是错误的

在创造子类对象时,会先执行父类的构造方法,再执行子类的构造方法

举例说明

package nb;

class a{
    public a(){
        System.out.printf("这是父类方法");
    }
}

class b extends a{
    public b(){
        System.out.printf("这是子类方法");
    }
}
public class ex {
    public static void main(String[] args) {
        new b();
    }
}

image-20241010201100527

object类

object是所有类的父类,在object类中,主要包括clone(),finalize(),equals(),toString()

最常用的两个方法是equals(),toString()

getClass方法

getClass()是object类定义的方法,他会返回对象执行时的Class实例,使用此实例调用getMame()方法可以取得类的名称

toString方法

toString方法功能是将一个对象返回成字符串的形式,他会返回一个String实例.当类转换为字符串与字符串连接时会自动调用重写的toString方法

equals()方法

在java中有两种比较相等的方式,分别是==和equals()方法

两者具有区别==比较的是两者的内存,equals比较的是两个对象的具体内容

对象类型的转换

举一个例子

package nb;

class People{}
class Teacher extends People{}
public class tom {
    public static void main(String[] args) {
        People tom = new Teacher();
      这里有一个人 名字叫tom	他是一名老师
        Teacher teacher = (Teacher) tom;
      这个人(tom) 是一个老师
    }
}

如果Teacher teacher = tom;这句话输入的话计算机会报错

因为老师是人,人不一定是老师

People tom = new Teacher();可以由老师向上转型,但是不能向下转型

instanceof关键字

判断一个类是否实现了接口,判断一个实例对象是否属于一个类

写一个小案例

package nb;

class Aa {}
class Bb extends Aa{}
class Cc{}
public class instance_ {
    public static void main(String[] args) {
        Aa aa = new Aa();
        Bb bb = new Bb();
        System.out.println(aa instanceof Bb);
        System.out.println(bb instanceof Aa);
    }
}

image-20241010203413471

b继承a,a 不属于 b,所以返回false

b属于a,返回true 如果遇到别的教程值相反属于书籍谬误,需要编写程序验证

方法的重载

构造方法只有一个名字,希望以不同的方式实例化对象,需要使用多个构造方法来完成

这些构造方法根据类名命名,方法名相同形参不同的方法叫做重载

final

final变量

final double PI =3.14

使用final设置变量后变量不可变,

final方法

将方法定义为final类型,可以防止子类修改父类的定义和实现方式

final的方法执行效率高于非final方法

final类

定义为final的类不能被继承,该类中所有的方法都被隐式的设置成final方法,但是final类中的成员变量可以被定位成

final和非final形式

record类

record是final声明的简化

public final class a == public record class

该类中所有的方法都被隐式的设置成final方法,但是final类中的成员变量可以被定位成

final和非final形式

record类

record是final声明的简化

public final class a == public record class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值