`
android2116
  • 浏览: 14671 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA中子类实例化过程中super和this的使用

阅读更多

用代码直观理解子类实例化过程。

1、注意其中super和this关键字的使用。

2、分别对第7,8,9行代码进行注释后运行,观察运行结果。

3、对第45行代码进行取消注释,观察运行结果。

4、注意第51行和第52行代码中this关键字的不同使用方式。

5、源代码不动,注释掉父类中Father()构造方法(第22~25行代码),观察运行结果,并看父类构造函数的注释语句。

 

class ExtendsDemo 
{

	public static void main( String[] args )
	{
		
		Son s = new Son();
		//Son s1 = new Son( 110 );
		//Son s2 = new Son( 1, 2 );
		//s.speak();

	}//end of method main

}//end of class ExtendsDemo

class Father
{

	String name;
	int age;

	Father( ) //此构造函数可以被子类隐式调用
	{
		System.out.println( "Father( ) is run" );
	}//end of method Father

	Father( int x )//如果只有此构造函数,在子类中只能手动调用
	{
		System.out.println( "Father( int x ) is run:" );

	}//end of method Father

	void speak()
	{
		System.out.println( "I am father!" );
	}//end of method speak

}//end of class Father

class Son extends Father
{

	Son()
	{
		//super( 2116 );
		System.out.println( "Son() is run" );
	}//end of method Son 

	Son( int x )
	{
		this();
		this.speak();//该句在此为打酱油,为表示this调用构造方法和一般方法的不同语法
		System.out.println( "Son( int x ) is run" );

	}//end of method Son

	Son( int x, int y )
	{
	
		this( x );
		System.out.println( "on( int x, int y ) is run" );

	}//end of method Son

	void speak()
	{
		System.out.println( "I am Son!" );
	}//end of method speak

}//end of class Son

 

0
4
分享到:
评论

相关推荐

    Java中子类和父类之间的调用关系

    - `this`关键字用于引用当前对象的实例,可以用来调用本类中的其他构造器或者访问本类的成员变量和方法。 - `super`关键字则用于引用父类的对象,主要用于调用父类的成员变量或方法,尤其是当子类重写了父类的方法...

    Java程序设计总复习题库及答案.pdf

    - Java区分大小写,程序中使用的关键字和保留字必须符合Java语言规范。 2. 输入输出与基本操作 - System.out.print()和System.out.println()用于控制台输出,前者不换行,后者换行。 - Java中所有类的根类是...

    90个高质量的java问答.pdf

    - **实例化对象时的构造过程**:分析创建对象时构造器的具体执行流程。 #### 5. Java 枚举(Enum)的应用示例 - **枚举的基本用法**:介绍枚举类型的定义和简单使用。 - **枚举的高级特性**:探讨如何利用枚举实现...

    C++/JAVA/C#子类调用父类函数情况总结

    - **base.functionName(args)**:与Java中的`super`类似,C#使用`base`关键字来调用父类的非覆盖方法。 这些规则适用于所有情况,无论是在实例化子类对象时还是在子类的其他方法中。注意,子类可以访问父类的公有...

    ViewDragHelper使用

    在Android开发中,ViewDragHelper是一个非常实用的工具类,用于帮助我们实现ViewGroup中子View的拖动操作。这个工具类是ViewGroup的一个内部类,它提供了处理触摸事件和控制View拖动的能力,让我们能够轻松地创建出...

Global site tag (gtag.js) - Google Analytics