java子类调用父类
‘壹’ java中子类调用父类方法
interface Shape
{
double 面积();
}
interface Shape2D extends Shape
{
double 周长();
}
interface Scaleable
{
void scale(double proportion);
}
class 圆 implements Shape2D
{
float r;
圆(float r1)
{
r=r1;
}
public double 面积()
{
return (3.14*r*r);
}
public double 周长()
{
return (2*3.14*r);
}
}
class 矩形 implements Shape2D
{
float a,b;
矩形(float a1,float b1)
{
a=a1;
b=b1;
}
public double 面积()
{
return (a*b);
}
public double 周长()
{
return (2*(a+b));
}
}
class 缩圆 extends 圆 implements Scaleable
{
public 缩圆()
{
super(5);
}
public void scale(double proportion)
{
System.out.println("缩小后的面积是"+proportion*面积());
}
}
class A extends 缩圆
{
public static void main(String[] args)
{
缩圆 sy=new 缩圆();
sy.scale(0.5);
}
}
这个是正确的 要好好掌握基础知识
‘贰’ java实现子类调用父类的方法java实现子类调用父类的方法吗
publicclass父类
{
publicstaticvoidmain(String[]args)
{
System.out.println(" ==========HelloWorld!========== ");
init();
}//初始化!
privatestaticvoidinit()
{
//用子类实例调用!
newZi().show();
//用多态形式也是一样可以满足调用!
Fuf=newZi();
f.show();
}
}
//可以的!
classFu
{
voidshow()
{
System.out.println("父类方法..show");
}
}
classZiextendsFu
{
//这个方法,覆不覆盖都可以!
voidshow()
{
super.show();
}
}
‘叁’ java 子类调用父类构造方法会创建父类对象吗
调用初始化方法并不代表会生成对象,你的java代码中出现new关键字加上构造方法的调用,只会生成一个对象,其父类对象不会生成,所以调用父类为抽象类的构造方法完全是合理的。
抽象类中的构造方法其实是用来给继承的子类来用的,因为构造方法相当于初始化方法,当子类调用构造方法时必须调用父类构造方法,所以你可以在子类产生对象时抽象类中按需求初始化抽象类中的字段以及执行一些初始化代码。其实并不是一定要生成某个类的实例才调用构造方法,子类也需要调用父类构造方法。
子类在创建实例后,类初始化方法会调用父类的初始化方法(除了Java.lang.Object类,因java.lang.Object类没有父类),而这种调用会逐级追述,直到java.lang.Object的初始化方法。这个地方我说的是初始化方法,而不是构造方法,因为构造方法是相对于java源程序而言,而编译后的class文件是初始化方法即" <init>"方法(红色部分为方法名)。
‘肆’ java(面向对象)中,子类如何调用父类的构造方法分别从无参和有参角度
首先子类中的方法必须调用父类的构造方法,如果父类中只有一个有参的构造方法,你在子类的构造方法必须调用,而且是子类的构造方法第一句话必须是调用父类的有参构造方法,否则编译器会提示错误的。如果父类中有无参的构造方法,你没有写的话会自动调用的
‘伍’ java子类构造中怎么调用父类的构造函数
先小小纠正一下,java里面一般不叫函数,叫方法,这是Java的一个小习惯。
你这个问题原因很简单。
首先,任何类都有构造方法,难怕是你不写,也会默认你有一个有无参构造方法。,所以你的A里面就会有一个叫A()的构造方法。
当你new A()时,默认你有一个有无参构造方法A()的方法里的第一句,会自动加上一个super();的方法,这句就是调用父类构造方法的意思,这是java规定的规则。
你可以尝试一下,在A里写一个构造方法:
A(){
super(); //这个一定要放在第一句
System.out..XX;
}
这与你不写super()这句效果是一样的,因如果没写,java会默认在第一句加上super。
‘陆’ java中,子类调用父类函数构造函数中被重写的方法,输出语句为什么是默认值
1,Java的函数调用是虚拟调用,对象名.方法名,调用的都是其真实类型的函数,就是说,对象实际上是一个dog,那么调用的就是dog的重写方法。父类构造器之所以被调用,是因为子类的构造器会调用父类的构造器,整个过程实际上是dog的构造。
2,这个和初始化顺序有关,new对象时,会先初始化成员变量再调用构造器,所以初始化顺序是:父类的成员变量->父类构造器->子类成员变量->子类构造器
也就是说,父类构造器中调用getAge的时候,dog的成员变量还没有初始化
等到子类构造器中再调用一次的时候,已经完成初始化。
‘柒’ Java子类调用父类方法的问题
main方法中是可以的,父类是不能调用子类
的方法的。跟你说底层实现你也不懂,从面向对象上来说吧。
父类先于子类存在,子类从父类中生出来,所以子类知道父类,可以调用父类方法。但父类不知道子类,子类可以任意的出生,只要你愿意,所以父类无法调用子类,他不知他会有这样的子类,也不知有多少个子类,但子类的父类是唯一的。
简单点就是在java中父类是不能调用子类的方法的。
‘捌’ java子类如何调用父类变量和方法
其过程是先给子类的属性,i分配存储空间,并赋默认值0,执行父类构造方法, 里面有个test(),这个方法被子类覆写了,所以实际执行的是子类的test()方法。会输出i,这时i=0,所以输出0。然后给属性i赋值10。 在给属性i赋值的前 加载了父类 然后就有了后面的0
‘玖’ 如何在java中子类中父类的对象如何调用父类的方法
对于有继承关系的类,子类可以通过这个关键字调用父类中的方法。
比如:super.query();
此句话的意思是调用父类中的非私有方法query。
一般的用super关键字,调用类中的父类中重载构造方法。
比如:父类有个构造方法public
A(){},同时又写了一个重载的构造方法public
A(String
name);那么,在子类中可以使用super(name)指明调用父类的哪个构造方法进行实例化父类对象。
大概就是这样的!