JAVA 面向对象(五)

ゝ一纸荒年。 2023-06-08 10:45 101阅读 0赞

文章目录

  • 1 继承
      1. 调用空参,有参构造方法

1 继承

1. 什么是继承子类可以继承父类共有的属性和方法

  • 继承关键字是:***extends***
  • 子类不能继承父类的构造方法。也就是说super()不是继承,是调用
  • 继承的优点:实现类的重用,减少代码的冗余。
  • 子类继承了父类后:
    子类可以访问父类中的公有的属性,对象可以直接访问父类的属性
    子类可以访问父类中的方法】。 对象可以直接访问父类的方法。
    子类可以重写 父类中的方法。

2. 什么叫做重写

  • 子类重写了父类中的方法:方法名称相同,参数列表相同,返回值相同。

3. 什么叫做重载

  • 仅仅在一个中,方法名相同,参数列表不同,与返回值无关

4. 什么叫做构造方法

  • 在一个中,方法名称与类名相同,无返回值的方法,叫做构造方法

————————————————————————

  • this 当前对象
  • super 父类对象
  • this() 当前对象的构造方法
  • super() 父类对象的构造方法

子类的构造方法中,会默认 调用父类的无参构造方法super()。可以指明调用父类的有参构造方法

  • super();必须出现在第一行。

:为什么子类会首先调用父类的构造方法?

  • 因为在继承关系中,必须现有父,再有子。

————————————————————————

  • Object 是所有类的(超类) (基类) (父类)※※※

示例一:

  • 子类绝不能继承父类的构造方法。
  • 我是父类的无参构造方法。
  • 我是子类无参构造方法

  • 我是父类的无参构造方法。
  • 我是子类的有参构造方法。

    子类继承了父类后,默认在子类的构造方法中调用父类的无参构造方法()

代码如下
下面展示一些 子类不能传递给父类构造方法代码片

  • 子类 学生类

    1. public class Student extends People{
    2. private String name;
    3. public String getName() {
    4. return name;
    5. }
    6. public void setName(String name) {
    7. this.name = name;
    8. }
    9. public Student() {
    10. super();// 默认存在
    11. System.out.println("我是子类无参构造方法");
    12. }
    13. public Student(String name) {
    14. super(10);// 默认存在
    15. System.out.println("我是子类的有参构造方法。");
    16. this.name = name;
    17. }
    18. }

构造方法People类

  1. public class People {
  2. private int id;
  3. public int getId() {
  4. return id;
  5. }
  6. public void setId(int id) {
  7. this.id = id;
  8. }
  9. public People() {
  10. System.out.println("我是父类的无参构造方法。");
  11. }
  12. public People(int id) {
  13. System.out.println("我是父类有参构造方法");
  14. this.id = id;
  15. }

Test 测试类

  1. public class Test {
  2. public static void main(String[] args) {
  3. Student student = new Student("zhangsan");
  4. }
  5. }

打印输出结果
链接: link.
—————————————————————————
示例二:
student学生类 子类

  1. public class Student extends People{
  2. private String stuNo;
  3. // 子类构造方法 无惨
  4. public Student(){
  5. System.out.println("学生类的无参构造方法被调用。");
  6. }
  7. // 知识点: this() super() 各自的作用。、
  8. public Student(String name){
  9. //this(); // this() 调用当前的构造方法。
  10. //super(); // super() 调用父类的构造方法。
  11. }
  12. // 有参构造方法
  13. public Student(String name,int age, String id, String sex, String stuNo){
  14. // 使用super关键字
  15. super(name,age,id,sex);// 首先调用父类中的构造方法。
  16. this.stuNo = stuNo;
  17. }
  18. // 知识点: thissuper 各自的方法
  19. public void show(){
  20. System.out.println(this.stuNo);// 当前对象。
  21. System.out.println(super.getName());
  22. }
  23. }

封装 继承

  1. public class People {
  2. private String name;
  3. private int age;
  4. private String id;
  5. private String sex;
  6. public String getName(){
  7. return name;
  8. }
  9. public void setName(String name){
  10. this.name = name;
  11. }
  12. public int getAge(){
  13. return age;
  14. }
  15. public void setAge(int age){
  16. this.age = age;
  17. }
  18. public String getId(){
  19. return id;
  20. }
  21. public void setId(String id){
  22. this.id = id;
  23. }
  24. public String getSex(){
  25. return sex;
  26. }
  27. public void setSex(String sex){
  28. this.sex = sex;
  29. }
  30. public People(){
  31. }
  32. public People(String name, int age, String id, String sex){
  33. this.name = name;
  34. this.age = age;
  35. this.id = id;
  36. this.sex = sex;
  37. }
  38. }

Test 测试类

  1. public class Test {
  2. public static void main(String[] args) {
  3. People people = new People();
  4. Student student = new Student("张三",18,"1001","女","1001");
  5. System.out.println(student.getName());
  6. student.show();
  7. }
  8. }

打印结果

链接: link.
示例二打印结果

————————————————-—————————

示例三:
下面分别是三个类与测试类

继承表示:子类可以继承父类中公有的属性和方法

  • 父类:人类;
  • 子类:学生类 继承 人类。能有拥有人类的属性。
  • 老师类

下面展示一些 People父类 人类 代码片

  1. public class People {
  2. // 公有的属性
  3. public String name;
  4. public int age;
  5. public String sex;
  6. public String id;
  7. // 公有的方法
  8. public void disolay(){
  9. System.out.println("人可以思考");
  10. }
  11. }

下面展示一些 Student 子类 学生类代码片

  1. public class Student extends People{// 学生类继承人类
  2. public String stuNo;// 学号
  3. public void show(){
  4. System.out.println("我的姓名:"+name+"\t学号"+stuNo);
  5. }
  6. // 子类重写父类中的方法。
  7. public void display(){
  8. System.out.println("学生可以进行思考");
  9. }
  10. }

下面展示一些 Teacher 教师类 代码片

  1. public class Teacher extends People{
  2. public String major;// 专业
  3. }

下面展示一些 测试类 代码片

  1. public class Test {
  2. public static void main(String[] args) {
  3. // 实例化人类
  4. People people = new People();
  5. //实例化学生类
  6. Student student = new Student();
  7. //子类对象可以访问父类中的属性
  8. student.name = "金莲";
  9. student.age = 16;
  10. student.id = "34567893456890";
  11. student.sex = "妖";
  12. student.stuNo = "1001";
  13. System.out.println("学生姓名:"+student.name+"\t学号:"+student.stuNo);
  14. // 子类对象中的方法,可以访问父类中的属性
  15. student.show();
  16. // 子类对象可以调用父类中的方法,当子类中拥有和父类相同的方法时,子类将覆盖父类中的方法。
  17. student.display();
  18. }
  19. }

打印结果为:

链接: link.

示例三打印结果

————————————————————————

2. 调用空参,有参构造方法

  • 每个类,在java中都叫做javaBean
  • java 咖啡
  • Bean 豆
  • javaBean 咖啡豆

下面展示一些 内联代码片

  1. public class Book {
  2. //私有属性
  3. private int id;
  4. // get set方法
  5. public int getId(){
  6. return id;
  7. }
  8. public void setId(int id){
  9. this.id = id;
  10. }
  11. // 无参构造方法
  12. public Book(){
  13. }
  14. //有参构造方法
  15. public Book(int id){
  16. this.id = id;
  17. }
  18. }

测试类
代码如下:

  1. public class Test {
  2. public static void main(String[] args) {
  3. // 调用空参构造方法
  4. Book book = new Book();
  5. // 有参构造方法
  6. Book book2= new Book(1001);
  7. }
  8. }、

————————————————————————

以上为第四天JAVA 面向对象 —继承 等等等…………的大概了解,希望各位大佬多多指点哦~~!!!

发表评论

表情:
评论列表 (有 0 条评论,101人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java学习 十面向对象

    一、概念: 面向对象是一种概念,是一种设计模式。 有人说面向对象指一切看得见的、看不见的、有形的、无形的,比如飞机、汽车、气体、固体、动物、植物等等,总之一切皆对象。我个