JavaSE Day06 继承

一、三大特性

1.理解

1)继承 inheritance 父类 基类 子类 派生类 单继承。(子类是父类:延续 新增 重写)

2)封装 encapsulation 保护数据|社会分工 、访问权限。

3)多态 polymorphism 多种形态,以不变应万变,代码通用性和扩展性。

2.extends

1)子类继承父类使用关键字:extends

2)继承父类:延续 新增 重写

public class Father{
    //名字
    String name;
    //年龄
    String age;
    public void eat(){
        System.out.println("吃吃吃。。。");
    }
    public void study(){
        System.out.println("每天进步一点点");
    }
}
//儿子继承父亲
public class Child extends Father{
    //学号
    String num;
    //成绩
    double score;
    //重写
    public void study(){
        System.out.println("每天在进步");
    }
    //新增
    public void coding(){
        System.out.println("天天敲代码。。");
    }
}
//使用子类继承父类
public class FApp{
    public static void main(String[] args){
        Child c=new Child();
        //延续
        c.name="xiaoxiao";
        c.age=18;
        c.eat();
        //新增
        c.num="124554";
        c.coding();
        //重写
        c.study();
    }
}

3.Object

任何一个类的老祖宗就是Object .Object所有的方法都会被继承下来。

4.子类实例化

子类实例化

1)先静态后成员

2)先父类后子类

3)创建对象new()

  • 开辟空间+默认值

  • 初始化

    1. = 存在赋值

    2. 构造块

    3. 构造器

  • 返回值

    存在继承

    1、父亲的空间+默认值; 子类的空间+默认值

    2、父类依次初始化 完毕后;子类的依次初始化

    3、返回地址给引用

4)就近最优:注意方法是否被重写

如果重写找子类

没有重写找父类的方法

public class Parent {
    int a;
    //构造器
    public Parent() {
        test();
    }
    //方法 
    public void test() {
        System.out.println(a);
    }
    public static void main(String [] args) {
        new Child();
    }
}
class Child extends Parent{
    int a;
    int b;
    //构造器
    public Child() {
        this.a=10;
        this.b=20;
    }
    //方法
    /*public void test() {
        System.out.println(a+"-->"+b);
    }*/
    
}

内存图:

发布了16 篇原创文章 · 获赞 1 · 访问量 477

猜你喜欢

转载自blog.csdn.net/qq_41128049/article/details/103945838