报错是因为:
Dog dog2 =(Dog)animal;//这里将 animal 强制转成了 Dog 类型。
Cat cat =(Cat) animal;//报错,是因为 通过上面的强转 animal 已经是Dog类型。 dog 不能 转成 Cat.
如果转 就要 前面 把animal =new Cat();转过来后,再写 Cat cat =(Cat) animal; 这一句
Dog dog2 =(Dog)animal;//这里将 animal 强制转成了 Dog 类型。
Cat cat =(Cat) animal;//报错,是因为 通过上面的强转 animal 已经是Dog类型。 dog 不能 转成 Cat.
如果转 就要 前面 把animal =new Cat();转过来后,再写 Cat cat =(Cat) animal; 这一句
2017-06-28
package shapes;
public class initial {
public static void main(String[] args) {
// TODO Auto-generated method stub
shap cir1 =new circle();
cir1.r =3;
cir1.area();
cir1.Perimeter();
shap rec1 =new rectangle();
rec1.x =3.5;
rec1.y =4;
rec1.area();
rec1.Perimeter();
}
}
public class initial {
public static void main(String[] args) {
// TODO Auto-generated method stub
shap cir1 =new circle();
cir1.r =3;
cir1.area();
cir1.Perimeter();
shap rec1 =new rectangle();
rec1.x =3.5;
rec1.y =4;
rec1.area();
rec1.Perimeter();
}
}
2017-06-27
package shapes;
public class rectangle extends shap {
@Override
public void Perimeter() {
per =2*(x+y);
System.out.println("长方形周长为:"+per);
}
@Override
public void area() {
// TODO Auto-generated method stub
area =x*y;
System.out.println("长方形面积为:"+area);
}
}
public class rectangle extends shap {
@Override
public void Perimeter() {
per =2*(x+y);
System.out.println("长方形周长为:"+per);
}
@Override
public void area() {
// TODO Auto-generated method stub
area =x*y;
System.out.println("长方形面积为:"+area);
}
}
2017-06-27
package shapes;
public class circle extends shap {
public void Perimeter() {
per =2*3.14*r;
System.out.println("圆的周长为: "+per);
}
public void area() {
// TODO Auto-generated method stub
area =3.14*r*r;
System.out.println("圆的面积为: "+area);
}
}
public class circle extends shap {
public void Perimeter() {
per =2*3.14*r;
System.out.println("圆的周长为: "+per);
}
public void area() {
// TODO Auto-generated method stub
area =3.14*r*r;
System.out.println("圆的面积为: "+area);
}
}
2017-06-27
package shapes;
public abstract class shap {
double area ;
double r ;
double per;
double x ;
double y;
public abstract void Perimeter();
public abstract void area();
}
public abstract class shap {
double area ;
double r ;
double per;
double x ;
double y;
public abstract void Perimeter();
public abstract void area();
}
2017-06-27
接Jamespan网友的评论,不知理解是否准确,请网友指正:
1.多态中,父亲可以打自己,父亲可以打儿子,儿子不能打父亲假如父类只有一个打人的方法,儿子重写了父类打人的方法,还有自己独有的哭泣方法.
2.父类引用可以调用自己打人的方法,父类引用指向子类调用的是子类重写父亲的方法.
3.父类打儿子,就是父类引用指向子类对象,父亲打疼了儿子,儿子会哭,但父亲不会哭,所以父类引用虽然指向儿子对象,但是还是不能调用子类独有的方法.
1.多态中,父亲可以打自己,父亲可以打儿子,儿子不能打父亲假如父类只有一个打人的方法,儿子重写了父类打人的方法,还有自己独有的哭泣方法.
2.父类引用可以调用自己打人的方法,父类引用指向子类调用的是子类重写父亲的方法.
3.父类打儿子,就是父类引用指向子类对象,父亲打疼了儿子,儿子会哭,但父亲不会哭,所以父类引用虽然指向儿子对象,但是还是不能调用子类独有的方法.
2017-06-27
System.out.println("外部类中的name:" + HelloWorld.this.name );
System.out.println("内部类中的name:" + name );
System.out.println("外部类中的age:" + age);
Inner inn = o.new Inner () ;
System.out.println("内部类中的name:" + name );
System.out.println("外部类中的age:" + age);
Inner inn = o.new Inner () ;
2017-06-27