import java.awt.image.SampleModel;
public class Test {
public static void main(String[] args) {
Shape a=new Circle();
a.printName();
a.printType();
System.out.println(a.name);
Circle b=(Circle)a;
b.printName();
b.printType();
System.out.println(b.name);
Circle c=new Circle();
c.printName();
c.printType();
System.out.println(c.name);
}
}
class Shape{
public String name="shape";
public Shape(){
System.out.println("shpe constructor");
}
public void printType(){
System.out.println("shapenormal");
}
public static void printName(){
System.out.println("shapestatic");
}
}
class Circle extends Shape{
public String name="circle";
public Circle(){
System.out.println("circle construct");
}
@Override
public void printType() {
System.out.println("circlenormal");
}
public static void printName(){
System.out.println("circlestatic");
}
}
输出结果:
shpe constructor // 创建circle默认调用父类构造函数
circle construct
shapestatic //静态方法不能重写
circlenormal //多态
shape
circlestatic //强转之后静态函数是子类的
circlenormal
circle //变量也是子类的
shpe constructor
circle construct
circlestatic
circlenormal
circle
这篇文章详细展示了Java中如何通过继承和多态实现类的扩展。通过实例代码,讲解了构造函数调用、静态方法与重写、对象类型转换等概念,并揭示了类名和实例名的区别。
&spm=1001.2101.3001.5002&articleId=123456660&d=1&t=3&u=e69a45941fb4493eb4b52e08e16d98a4)
2602

被折叠的 条评论
为什么被折叠?



