子类、父类各种方法的执行顺序
2014-09-29 09:37
225 查看
先贴出代码 :
父类Animal ,
package parentAndChild;
public class Animal {
/**
* 动物类
*/
static{
System.out.println("父类的静态代码块");
}
{
System.out.println("执行父类的构造代码块");
}
public Animal(){
System.out.println("执行父类的构造方法");
}
public Animal(String name){
System.out.println("执行父类的构造方法 动物名称");
}
public void A(){
System.out.println("执行父类的A方法");
}
}
子类Dog
package parentAndChild;
/**
* 狗类,继承动物
*/
public class Dog extends Animal{
public static void main(String[] args) {
Dog Dog = new Dog();
Dog.A();
}
static {
System.out.println("子类的静态代码块");
}
{
System.out.println("执行子类的构造代码块");
}
public Dog(){
System.out.println("执行子类的构造方法");
}
public void A() {
System.out.println("执行子类的A方法");
}
public void B(){
System.out.println("执行子类的B方法");
}
}
执行顺序为:
父类的静态代码块
子类的静态代码块
执行父类的构造代码块
执行父类的构造方法
执行子类的构造代码块
执行子类的构造方法
执行子类的A方法
思考:
1.比较各个方法的执行顺序。
2.被子类重写的方法,只执行重写的方法,不执行父类被重写的方法。即不执行父类A方法,只执行子类A方法。
3.父类的静态代码,构造代码块,无参(带参)构造方法在子类执行时都要执行。
父类Animal ,
package parentAndChild;
public class Animal {
/**
* 动物类
*/
static{
System.out.println("父类的静态代码块");
}
{
System.out.println("执行父类的构造代码块");
}
public Animal(){
System.out.println("执行父类的构造方法");
}
public Animal(String name){
System.out.println("执行父类的构造方法 动物名称");
}
public void A(){
System.out.println("执行父类的A方法");
}
}
子类Dog
package parentAndChild;
/**
* 狗类,继承动物
*/
public class Dog extends Animal{
public static void main(String[] args) {
Dog Dog = new Dog();
Dog.A();
}
static {
System.out.println("子类的静态代码块");
}
{
System.out.println("执行子类的构造代码块");
}
public Dog(){
System.out.println("执行子类的构造方法");
}
public void A() {
System.out.println("执行子类的A方法");
}
public void B(){
System.out.println("执行子类的B方法");
}
}
执行顺序为:
父类的静态代码块
子类的静态代码块
执行父类的构造代码块
执行父类的构造方法
执行子类的构造代码块
执行子类的构造方法
执行子类的A方法
思考:
1.比较各个方法的执行顺序。
2.被子类重写的方法,只执行重写的方法,不执行父类被重写的方法。即不执行父类A方法,只执行子类A方法。
3.父类的静态代码,构造代码块,无参(带参)构造方法在子类执行时都要执行。
相关文章推荐
- 子类、父类各种方法的执行顺序
- 子类、父类各种方法的执行顺序
- 父类子类构造方法、静态代码块、非静态代码块的执行顺序
- 父类子类静态代码块,构造方法的执行顺序
- Java继承中父类子类构造方法、静态代码块、非静态代码块的执行顺序
- java继承中父类和子类静态、非静态代码块,构造函数,静态方法的执行顺序
- 【JAVA】探究JAVA父类子类静态代码块、静态变量、构造方法的执行顺序
- java中父类的静态代码块,非静态代码块,构造方法,子类的静态代码块,构造方法等先后执行顺序
- java父类子类中静态块非静态块构造方法的执行顺序和继承
- 父类和子类静态代码块、非静态代码块、构造函数(方法)执行的先后顺序问题
- java中 静态成员、实例成员、构造方法在子类和父类中的执行顺序
- 当子类继承父类时,构造块,静态块,静态方法的执行顺序
- 父类与子类的静态代码块、代码块、构造方法执行顺序
- JAVA父类子类静态代码块、静态变量、构造方法的执行顺序
- asp.net 页面父类与子类方法执行的顺序
- 关于java中子类,父类中,静态代码块: staic{},动态代码块:{},构造方法,类属性,对象属性等执行顺序做个总结:
- Java子类继承父类,构造方法的执行顺序问题
- 子类继承父类中的static模块、构造方法执行顺序及java多态性
- java父类子类静态块、块、构造方法的执行顺序
- Java中子类和父类相关方法的执行顺序