lyt0612

导航

2022-07-21 第二组 刘禹彤 学习笔记

打卡第12天

今天继续学习面向对象

 

 

###学习内容

1.面向对象,继承

  • 类与类之间的关系:1.属性关系

                                           2.参数关系

                                           3.继承关系

  • extends:继承

在java中,继承是单继承,一个子类只能有一个直接父类,但可以有多个间接父类

extends后面只能写一个类

  • 继承能干什么?

(1)访问权限修饰符:1.public

2.protected

3.默认的

4.private

(2) 继承父类的属性

(3) 继承父类的方法

创建子类对象时,父类先被实例化,再实例化子类:

(1)当一个类被实例化时,一定会先实例化他的直接和间接父类

(2)子类的构造器可以有多个,但是必须和父类的构造器形式上统一

super关键字:代表调用父类的结构(属性,方法,构造器

面试题:this和super的区别?在子类中当使用super调用父类构造器时,super(age)必须是第一句话在子类中当使用this调用本类构造器时,this(name)必须是第一句话在构造器中,如果需要使用super或this调用其他构造器时只能二选一,而且必须是第一句话super指向父类,不代表任何对象this指向本类,代表当前类的对象,方法的调用者

2.方法的重写(覆写,覆盖 override

  1. 子类可以重写父类的方法
  2. 方法的重写,我们可以利用到父类中方法的已经运算过的结果,在结果的基础上添加
  3. 方法的重写,体现的是继承的核心,就是为了扩展父类的功能
  4. 方法重写的规则:前提,继承与被继承的的关系

1.访问权限:重写的权限不能低于被重写的方法,开发中一般都是等于

2.返回值类型:重写的方法的返回值可以和被重写的方法不同,但必须是重写方法的子

类,开发中一般都是一样

3.方法名:必须相同

4.参数列表:参数类型,参数个数必须相同

5.抛出异常,重写的方法不能抛出比被重写的方法更大的异常

  • 开发中如果要重写,基本上是一模一样,我们只改变方法体

###学习心得

今天主要学习了继承和方法的重写,听的效果比较好,还向老师咨询了不懂的地方,对前两天不太会的东西也逐渐明白了,相关类型的案例也有了一点思路,下午对之前的知识进行了整理,总体感觉不错。

###掌握程度:理解

相关案例;

person:

package b;

public class Person {
    private String name;
    private  String age;

    public Person() {
    }

    public Person(String name, String age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public Person setName(String name) {
        this.name = name;
        return this;
    }

    public String getAge() {
        return age;
    }

    public Person setAge(String age) {
        this.age = age;
        return this;
    }
}

Ch01:

package b;

public class Ch01 {
    private String name;
    private  Integer Age;
    /*
    * this可以代表对象
    * super代表不了对象
    * */

    public Ch01 info(String name, Integer age) {
//        Ch01 ch01 = new Ch01();
        this.setName(name);
        this.setAge(age);
        show(this);
        return this;
    }
    public void show(Ch01 ch01){

    }

    public static void main(String[] args) {
        Ch01 ch01 = new Ch01();
        ch01 = ch01.info("abcd",20);
        System.out.println(ch01.getName() + ch01.getAge());
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return Age;
    }

    public void setAge(Integer age) {
        Age = age;
    }
}

运行结果:

 

 

posted on 2022-07-21 19:34  小仙女吖~  阅读(21)  评论(0编辑  收藏  举报