java小白自学笔记——Day5(补充一些知识点)

本文介绍了Java中面向对象的向上转型和向下转型概念,包括安全性和注意事项。讲解了instanceof关键字用于判断对象类型,并讨论了final关键字在变量、方法和类中的应用,强调其防止被修改和提升程序效率的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.向上转型

     这是Java中的一种调用方式,是对A的对象的方法的扩充,即A的对象可访问B从A中继承来的和B“重写”A的方法。简而言之,可以理解为将子类类型对象转换为父类类型的对象。

例如:

public class project{
	public static void main(String[] args) {
		people tom=new teacher();
  }
}


class people{}
class teacher extends people{}

在这段伪代码中,就运用了向上转型的语法

people tom=new teacher();

综上所述,将一个具体的子类的对象转换为一个较为抽象的父类的对象是安全的。例如,可以说平行四边形是四边形,但不能说四边形是平行四边形。但值得注意的是,父类的对象无法调用子类独特的属性或方法。

2.向下转型

    可以类比于向上转型,可以把向下转型简而言之的理解为将父类类型的对象转换为子类类型的对象。但为避免报错,应该避免把抽象类对象转换为一个具体的类的对象。

例如,这段伪代码就是错误的,因为直接把父类对象赋值给子类对象了

public class project {
	public static void main(String[] args) {
		Bird bird=new Pigeon();
		Pigeon pigeon=bird;
  }
}


class Bird{}
class Pigeon extends Bird{}

那么如何修改呢,那么就需要用到强制转型,语法规则如下:

                         子类类型 子类对象=(子类类型)父类对象;

那么在对于该例,应将代码修改为:

Pigeon pigeon=(Pigeon)bird;

3.instanceof关键字

  向下转型时为了避免2中的错误,需要使用一个关键字判断父类的对象是否为子类对象的实例,这个关键字就是instanceof,具体使用语法如下:

myobject instanceof ExampleClass

myobject:某类的对象引用

ExampleClass:某个类

使用结果:true---是实例对象

                  false--不是实例对象

4.final关键字

   1)final关键字

      主要用于变量声明

      例如下面这段代码就定义了关键字PI,用以计算圆的周长和面积:

package project;
import java.util.Scanner;
public class iproject {
	static final double PI=3.1415926;
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		double r=sc.nextDouble();
		sc.close();
		double s,c;
		s=PI*r*r;
		c=2*PI*r;
		System.out.println(s);
		System.out.println(c);
  }
}

   2)final方法

  将方法定义为final类,可以防止子类修改父类的定义。同时,也可以是程序执行效率远高于非final类的方法

   3)final类

   final类不能被继承。用法如下:

     final 类名{}

  例如,Math类和String类就不能被当成任何类的父类,例如以下这段伪代码就是错误的:

class math extends java.lang.Math{}
class string extends java.lang.String{}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值