java中子类可以创建父类中没有定义的方法或者变量吗?
java中子类可以创建父类中没有定义的方法或者变量吗?如果不可以,那如果父类中没有而子类却需要的方法和变量只能靠接口来创建吗?如果可以,怎么创建呢?我的代码是:packa...
java中子类可以创建父类中没有定义的方法或者变量吗?
如果不可以,那如果父类中没有而子类却需要的方法和变量只能靠接口来创建吗?
如果可以,怎么创建呢?
我的代码是:
package com.Hello;
public class Aaa
{
public static void main(String [] args)
{
Animal dog = new Dog();
dog.getC(); //就是这里编译不过去
}
}
class Animal
{
int age = 1;
}
class Dog extends Animal
{
int c = age;
public void getC()
{
System.out.println(c);
}
} 展开
如果不可以,那如果父类中没有而子类却需要的方法和变量只能靠接口来创建吗?
如果可以,怎么创建呢?
我的代码是:
package com.Hello;
public class Aaa
{
public static void main(String [] args)
{
Animal dog = new Dog();
dog.getC(); //就是这里编译不过去
}
}
class Animal
{
int age = 1;
}
class Dog extends Animal
{
int c = age;
public void getC()
{
System.out.println(c);
}
} 展开
3个回答
展开全部
子类中完全可以定义父类中没有的方法,但是你的代码存在问题!
Animal dog = new Dog();这句表现的是JAVA的多态,表示由一个父类的引用指向子类,因为是引用的是动物类型,而动物类没有getC()方法,所以编译器会认为,这个方法是不存在的。
如果要通过编译 必须这样写:Dog dog = new Dog();
好比是:我说要一个动物,你给我一只小狗,这是可以的,但是狗会啃骨头,并不等于其他动物都会啃骨头。所以你给我一个动物,然后告诉我它要啃骨头,然而这只动物未必是小狗,所以我告诉你编译错误了
Animal dog = new Dog();这句表现的是JAVA的多态,表示由一个父类的引用指向子类,因为是引用的是动物类型,而动物类没有getC()方法,所以编译器会认为,这个方法是不存在的。
如果要通过编译 必须这样写:Dog dog = new Dog();
好比是:我说要一个动物,你给我一只小狗,这是可以的,但是狗会啃骨头,并不等于其他动物都会啃骨头。所以你给我一个动物,然后告诉我它要啃骨头,然而这只动物未必是小狗,所以我告诉你编译错误了
展开全部
可以。子类是对父类的继承和扩充,扩充的内容就可以包含方法和变量。
1、定一个父类
public class A{
}
2、定义一个子类,扩充一个方法和变量
public B extends A{
int a;//扩充一个变量
public void ye(){//定义了一个父类没有的方法。
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Animal dog = new Dog();改为Dogdog = new Dog();不就好了么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询