【java】extends继承this&super关键字

实现继承的格式

继承通过extends实现
格式:class 子类 extends 父类 { }
举例:class Dog extends Animal { }

以下java 几个特点

  • class不带(),方法带()
  • 文件名要与class名一致(大小写敏感)
  • 输出使用System.out.println();S是大写

示例代码

Parent.java

public class Parent {
    
    
    public int num = 10;
    public void show() {
    
    
        System.out.println("父类");
    }
}

Child.java

public class Child extends Parent{
    
    
    public int num = 100;
    public void method(){
    
    
        System.out.println("子类");
    
    }
}

ExtendsDemo.java

public class ExtendsDemo {
    
    
    public static void main(String[] args) {
    
    
        
        //创建一个父类对象
        Parent parent = new Parent();
        //调用父类的方法
        parent.show();
        
        // 创建一个子类对象
        Child child = new Child();
        // 调用子类的方法
        child.method();
    
    }
}

在这里插入图片描述

继承方位this&super关键字

  1. this&super关键字:
  • this:代表本类对象的引用
  • super:代表父类存储空间的标识(可以理解为父类对象引用)
  1. this和super的使用分别
    成员变量:
  • this.成员变量 - 访问本类成员变量
  • super.成员变量 - 访问父类成员变量
    成员方法:
  • this.成员方法 - 访问本类成员方法

Parent.java

public class Parent {
    
    
    public int num = 10;
    public void show() {
    
    
        System.out.println("父类方法被调用");
    }
}

Child.java

public class Child extends Parent{
    
    
    public int num = 100;
    public void method(){
    
    
        System.out.println("子类方法被调用");
        System.out.println("thisnum = " + this.num);
        System.out.println("supernum = " + super.num);
    }
}

ExtendsDemo.java

public class ExtendsDemo {
    
    
    public static void main(String[] args) {
    
    
        int num=1000;
        
        //创建一个父类对象
        Parent parent = new Parent();
        //调用父类的方法
        parent.show();

        System.out.println("Miannum="+num);

        // 创建一个子类对象
        Child child = new Child();
        // 调用子类的方法
        child.method();

    }
}

在这里插入图片描述

继承的好处和弊端(理解)

继承好处

  • 提高了代码的复用性(多个类相同的成员可以放到同一个类中)
  • 提高了代码的维护性(如果方法的代码需要修改,修改一处即可

继承弊端

  • 继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性

继承的应用场景:

使用继承,需要考虑类与类之间是否存在is…a的关系,不能盲目使用继承
is…a的关系:谁是谁的一种,例如:老师和学生是人的一种,那人就是父类,学生和老师就是子类

猜你喜欢

转载自blog.csdn.net/xzzteach/article/details/141013878