随笔 - 322  文章 - 0  评论 - 4  阅读 - 77146

Java super关键字使用 +案列

复制代码
 1 package com.bytezero.supertest;
 2 /*
 3  * 
 4  * super关键字使用
 5  * 1.super:理解为 父类的
 6  * 2.super可以使用调用:属性,方法,构造器
 7  * 
 8  * 3.super的使用:调用属性,方法,
 9  *    
10  *    可以在子类的方法或构造器中。通过使用“super.属性的” 或“super.方法”的方式,
11  *  显示的调用父类声明的属性或方法。但是,通常情况下,习惯省略“super.”
12  *    
13  *   特殊情况: 当子类与父类定义了同名的属性时:我们想要在子类中调用父类中声明的属性,则必须
14  *  显示的使用:super.属性  的方式,表明调用的是父类中声明的属性
15  * 
16  *   特殊情况:当子类重写了父类的方法以后,我们想在子类的方法中调用了父类中被重写的方法时,
17  *  则必须显示的使用:super.方法  的方式,表明调用的是父类中被重写的方法 
18  * 
19  *  4.super调用构造器  调用父类的 构造器
20  *    1.在子类的构造器中显示的使用"super(形参列表)"的方式,调用父类中声明指定的构造器
21  *    2."super(形参列表)"的方式的使用,必须声明在子类构造器的首行!!
22  *    3.我们在类的构造器中,针对于”this(形参列表)“或”super(形参列表)“,只能二选一,不能
23  *  同时出现。
24  *    4.在构造器的首行,没有先显示的声明,”this(形参列表)“或”super(形参列表)“,则默认调用
25  *  的是父类中空参的构造器:super();
26  *    5.在类的多个构造器中,至少有一个类的构造器中,使用了”super(形参列表)“,调用父类中的构造器
27  *    
28  *    
29  * 
30  */
31 public class SuperTest
32 {
33     public static void main(String[] args) {
34         
35         Student s = new Student();
36         s.show();
37         
38     
39         System.out.println();
40         s.study();
41         
42         Student s1 = new Student("Tom",21,"IT");
43         s1.show();
44         
45         System.out.println("*******************");
46         Student s2 = new Student();
47         
48         
49         
50         
51     }
52 }
复制代码
复制代码
 1 package com.bytezero.supertest;
 2 
 3 public class Person
 4 {
 5     String name;
 6     int age;
 7     int id = 1001;  //身份证好
 8     
 9     public Person()
10     {
11         System.out.println("我无处不在");
12     }
13     public Person(String name)
14     {
15         this.name = name;
16     }
17     
18     public Person(String name,int age)
19     {
20         this(name);
21         this.age = age;
22         
23     }
24     public void eat()
25     {
26         System.out.println("人,吃饭");
27     }
28     public void walk()
29     {
30         System.out.println("人,走路");
31     }
32     
33     
34     
35     
36 }
复制代码
复制代码
 1 package com.bytezero.supertest;
 2 
 3 public class Student extends Person {
 4 
 5     String major;
 6     int id = 1002;  //学号
 7     
 8     public Student()
 9     {
10         super();
11     }
12     
13     public Student(String major)
14     {
15         
16         this.major = major;
17     }
18     public Student(String name,int age,String major)
19     {
20 //        this.name = name;
21 //        this.age = age;
22         super(name,age);
23         this.major = major;
24     }
25     
26     @Override
27     public void eat()
28     {
29         System.out.println("学生多吃有营养的食物");
30     }
31     
32     public void study()
33     {
34         System.out.println("学生:学习知识!");
35         this.eat();
36         super.eat();
37         //this.walk();   //都可以使用  通常 省略
38         //super.walk();
39          walk();
40     }
41     
42     
43     public void show()
44     {
45         System.out.println("name=" + this.name +",age="+super.age);
46         
47         System.out.println("id= " + this.id);
48         System.out.println("id= "+super.id);
49     }
50     
51 }
复制代码

 

posted on   Bytezero!  阅读(37)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示