下面是c#
C#可以使用is来判断一个变量是不是某个类型
可以使用as 来判断的同时如果是 并且转换
class Program
{
public static void
Main(string[] args)
{
B b = new B();
bool isB = b is
B;//true
bool isA = b is
A;//true
A a = b as A; //如果b是A的类型
或者基类是A 则可以转换为A 则a不为null 否则为null
Console.ReadKey();
}
}
class A
{
public virtual void
sing()
{
Console.WriteLine("父亲在唱歌");
}
}
class B : A
{
public override void sing()
{
Console.WriteLine("儿子在唱歌");
}
}
下面是java
public
class FuckJava {
public static void main(String[]
args) {
B b = new B();
boolean isB = b instanceof
B;//true
boolean isA = b instanceof
A;//true
// A a = b as A; java中没有类似的关键字 读者可以使用instanceof来进行间接实现
A a = null;
if(b instanceof A) {
a = (A)b;
}
}
}
class A
{
public void sing()
{
System.out.println("父亲在唱歌");
}
}
class B extends A
{
public void sing()
{
System.out.println("儿子在唱歌");
}
}
java中没有as
这个关键字 但是可以使用instanceof 来结合if等判断来实现