/*
子父类出现后,类成员的特点:
类中成员:
1、变量
2、函数
3、构造函数
1、变量:
如果子父类中出现非私有的同名成员变量时,子类要访问本类中的变量用this
子类要访问父类中的同名变量用super
super的使用和this的使用几乎一致
this代表的是本类对象的引用
super代表的是父类对象的引用。
2、函数
当子类出现和父类一样的函数时,
当子类对象调用该函数时,会运行子类函数的内容。
如同父类的函数被覆盖一样。
这种情况是函数的另外一个特性:重写(覆盖)
当子类继承了父类,沿袭了父类的功能到子类中,但是子类虽具备功能,但是功能的内容和父类不一致,
这时,没有必要定义新功能,而是使用覆盖,保留父类的功能定义,并重写功能内容。
覆盖:
1、 子类覆盖父类,必须保证子类权限大于等于父类,才可以覆盖,否则编译失败。
2、静态只能覆盖静态。
注意:
重载:只看同名函数的参数列表。
重写:子父类方法一模一样,包括返回值类型。
*/
class fu{
int num=4;
void speak(){
System.out.println("VB");
}
}
class zi extends fu{
int num=5; //如果这句话给注释掉,则num前默认加的是super
void show(){
System.out.println(super.num);//如果不加super则打印的是子类的num num前默认加的的this
}
void speak(){
System.out.println("JAVA");
}
}
public class ExtendsDemo {
public static void main(String[] args) {
zi z=new zi();
z.show();
System.out.println(z.num+"......."+z.num);
z.speak();
}
}
/*
电话升级:
class Tel
{
void show()
{
System.out.println("number");
}
}
class NewTel extends Tel
{
void show()
{
//System.out.println("number");
super.show(); //直接调用父类中的方法
System.out.println("name");
System.out.println("picture");
}
}
*/
效果图:
心得体会:一开始学的时候只会写代码,没有这么深入的理解,很多知识点都很混乱,深入理解后清晰多了。