java之继承1

什么是继承?

继承(extends)让类与类之间产生关系,子父类关系 。子类继承父类,可以得到父类的全部属性和方法 (除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法)。

继承的语法

class 子类 extends 父类{

}

继承的好处和弊端

  • 提高了代码的重用,便于维护,和复用性
  • 类的耦合性增强了。违反了开发原则
  • 开发的原则:高内聚,低耦合。
  • 耦合:类与类的关系
  • 内聚:就是自己完成某件事情的能力
     

继承的注意事项:

  • Java中只有单继承,类没有多继承,接口有多继承。支持多层继承(继承体系) 
  • .如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object。
  • 子类不能继承父类的构造方法,但是可以通过super()关键字去访问父类构造方法。
  • 不要为了部分功能而去继承
  • 如果想用这个体系的所有功能用最底层的类创建对像
  • 如果想看这个体系的共性功能,看最顶层的类 

this 和super

:this和super都代表什么

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

:this和super的使用区别
   * a:调用成员变量

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

    * b:调用构造方法

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

    * c:调用成员方法

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

package com.company;


public class Welcome {
    public static void main(String[] args) {
        son S = new son();
        S.test(); // 子类调用父类中的方法

    }
}


class Father {
    int age = 18;

    public void eat() {
        System.out.println("我会吃饭");
    }
}

class son extends Father {
    String name;

    public void test() {
        System.out.println(this.age); //this 调用父类中的属性
        System.out.println(this.name); // 也可以掉用子类的属性
        System.out.println(super.age); // 只能调用父类的属性
        super.eat();  // 调用父类的成员方法
    }


}

--------------------------------------------
18
null
18
我会吃饭

猜你喜欢

转载自blog.csdn.net/weixin_44462792/article/details/86517402