Day12-6.15

Day12-6.15-6.16

继承

  1. 本质是对某一批类的抽象,从而实现对现实世界更好的建模。

  2. extends的意思是“扩展” 子类是父类的扩展。

  3. java中类只有单继承,没有多继承。

package Oop.Constructor;
//继承 父类
public class OopDame02  {


}

继承

package Oop.Constructor;
//子类  派生类
public class OopDame03 extends OopDame02{
}

多态也要球继承的前提。

java其他的关系;组合

package Oop.Constructor;

public class OopDame03 extends OopDame02{
}

继承概念解析

  1. 继承是类和类之间的一种关系,除此之外类与类之间还有的关系;依赖、组合、聚合等 。
  2. 继承关系的两个类,一个为子类(派生类)一个父类(基类)子类继承父类。使用关键字extends来表示。
  3. 子类和父类之间从意义上讲应该具有“is a”的关系 。

eg;

package Oop.Constructor;
//继承 夫类
public class OopDame02  {
    public void say(){
        System.out.println("说了一句屁话");
    }


}

子类继承

package Oop.Constructor;
//子类
public class OopDame03 extends OopDame02{
    public static void main(String[] args) {
        OopDame03 tay = new OopDame03();
        tay.say();
    }
}

输出;说了一句屁话

四个修饰符;

public:公共的(优先级最高)

privant;私有的

default;默认的

protected ;受保护的;

ctrl+H 捷键显示子类和父类的关系;继承树。
java中所有的类都默认直接或者间接继承object类
super和this

父类

package Oop.Constructor;

public class Father {
    protected  String name ="王八蛋1";
}

子类

package Oop.Constructor;

public class Son extends Father{

    private String name="王八蛋";//


    public void test(String name){//形式参数的name传递给它的;
        System.out.println(name);//当前string  name
        System.out.println(this.name);//子类中的name
        System.out.println(super.name);//访问父类的属性;

    }



}

调用

package Oop.Constructor;
//Application应用  规范一个项目只存在一个main方法
public class Application {
    public static void main(String[] args) {
        Son son = new Son();
        son.test("wangbadan");//调用方法


    }
}

输出:wangbadan;王八蛋;王八蛋1

结论

super关键字输出父类中的方法;私有的关键字private 不能被继承

this关键字输出当前类

父类

package Oop.Super;

public class Person {
    public Person() {
        System.out.println("父类执行了");
    }
}

子类

package Oop.Super;

public class Studer  extends Person{
    public Studer() {
        super();
        System.out.println("子类执行了");
    }
}

运行

package Oop.Super;

public class Application {
    public static void main(String[]args){
        Studer studer = new Studer();
        /*studer.test("名字3");
        studer.test1();*/
    }
}

输出:父类执行了

​ 子类执行了

结论;说明有一句隐藏代码;默认调用了父类的无参构造;

super();调用父类的构造器必须在子类构造器的第一行;

总结

super注意点

  1. super调用父类的构造方法 ,必须在构造方法的第一行
  2. super必须只能出现在子类的方法或者构造器中
  3. super this不能同时调用构造方法

this注意点

  1. 代表对象不同;

    this;本身的调用者这个对象

    super;代表父类对象的应用

  2. 前提

    this;没有继承也能用

    super;只能在继承条件下可使用

  3. 构造方法

    this();本类的构造

    super();父类的构造

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值