首页 > 编程语言 > 详细

2019-05-25 java学习日记

时间:2019-05-25 15:04:02      阅读:171      评论:0      收藏:0      [点我收藏+]

面向对象this和 super的区别与应用

this:代表当前对象的引用,谁来调用我,我就代表谁super:代表当前对象父类的引用

this即可调用本类的,也可调用父类的,不过要在本类没有的情况下才能调用

this和super的使用区别

调用成员变量

this.成员变量  调用本类的成员变量,也可以调用父类的成员变量
super.成员变量 调用父类的成员变量

调用构造方法

this(...) 调用本类的构造方法
super(...) 调用父类的构造方法

c:调用成员方法

this.成员方法  调用本类的成员方法,也可以调用父类的成员方法
super.成员方法 调用父类的成员方法

注:

系统会默认给空参构造 ,也会默认给super();语句,
子类中所有的构造方法默认都会访问父类中的空参构造方法。
因为子类会继承父类的数据,可能还会使用父类的数据,
所以子类初始化之前一定要先完成父类数据化的初始化,
其实每一个构造方法的第一条语句默认都是:super() object类是最顶层的父类 。

this和super只能存在一个,super(...)或者this(...)必须出现在构造方法的第一条语句上。

技术分享图片
 1 class Demo_extends {
 2     public static void main(String[] args) {
 3         Son s1 = new Son();
 4         System.out.println("姓名:" + s1.getName() + ",年龄:" + s1.getAge());
 5         System.out.println("---------------");
 6         Son s2 = new Son("张三",23);
 7         System.out.println(s2.getName() + "..." + s2.getAge());
 8     }
 9 }
10 
11 class Father {
12     private String name;                    //姓名
13     private int age;                        //年龄
14 
15     public Father() {                    //空参构造
16         System.out.println("这是一个空参构造");
17     }
18     public  Father(String name,int age ) {        //有参构造
19         this.name = name;
20         this.age = age;
21         System.out.println("这是一个有参构造");        
22     }
23 
24     public void setName (String name) {        //设置姓名
25         this.name = name;
26     }
27     public String getName () {                //获取姓名
28         return name;
29     }
30 
31     public void setage (int age) {            //设置年龄
32         this.age = age;
33     }
34     public int getAge () {                    //获取年龄
35         return age;
36     }
37 }
38 
39 class Son extends Father{
40     public  Son() {                        //空参构造 
41         this("王五",26);                    //本类中的构造方法
42         //super();                        //调用父类中的构造方法        
43         System.out.println("这是一个空参构造");                
44     }
45     public  Son(String name,int age) {        //有参构造
46         super(name,age);
47         System.out.println("这是一个有参构造");
48     }
49     
50 }
例子

 

 

 

 

2019-05-25 java学习日记

原文:https://www.cnblogs.com/Sherwin-liao/p/10922409.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!