Java 中关于在继承里 的this 指向问题
this指向的是对象,而不是类。
一个类可以生成许多对象,比如:
Mammal m1=new Mammal();
Mammal m2=new Mammal();
m1.taisheng(); //m1调用了这个方法,当执行到this时,this指的就是m1
m2.taisheng(); //这里执行到this时,指的是m2
Java继承中this和super的异同
一、指代不同
1、super:是当前对象里面的父对象的引用。
2、this:指的是当前对象的引用。
二、调用函数不同
1、super:调用基类中的某一个构造函数(应该为构造函数中的第一条语句) 。
2、this:调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)。
三、引用对象不同
1、super:引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)。
2、this:代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)。
参考资料来源:百度百科-Java关键字super
参考资料来源:百度百科-java关键字
java语言关于继承中this.方法()or this.属性的问题
不管什么样都行,你记住,this.XXX都是从子类里调用的,调用的也都是子类的东西,不会调用父类的东西,如果这时子类没有XXX,那么就会出错。就算在继承里,父类有的,子类没有重新定义的方法,子类也是从父类继承过来的,也就是子类的东西了。要调用父类的东西,使用super.YYYY就没问题了,坚信这样的原则,不会让你越学越乱!
java 继承与this关键字
因为子类继承了父类的fun()方法,所以子类也会有一个fun()方法,
但是无法继承父类的私有方法say()方法,所以就不会重写say()方法
而子类又没有重写父类的fun()方法,所以子类中的fun()方法还是调用的是父类中的say()方法,所以就会输出父类中的内容
希望对你有帮助
关于JAVA继承中this关键字的用法问题
this("未知名",0,"未知系");必须出现在构造方法的第一行,目的是在一个构造方法中调用属于本类的另一个构造方法
this("未知名",0,"未知系");调用的是构造方法public Student_mo(String n,int a,String d){