java基础语法面向对象02

1.7继承

概念在这里插入图片描述
特点
在这里插入图片描述
继承条件下构造方法的执行过程
继承条件下构造方法的调用规则如下:
情况1:如果子类的构造方法中没有通过super显式调用父类的有参构造方法,也没有通过this显式调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。在这种情况下,写不写“super();”语句,效果是一样的。
情况2:如果子类的构造方法中通过super显式调用父类的有参构造方法,那将执行父类相应构造方法,而不执行父类无参构造方法。
情况3:如果子类的构造方法中通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则。
特别注意的是,如果存在多级继承关系,在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止。

public class Test {
  public static void main(String[] args) {
    A ab = new B();
    ab = new B();
 }
}
class A{
  static{
    System.out.print("1");
 }
  public A(){
    System.out.print("2");
 }
}
class B extends A{
  static{
    System.out.print("a");
 }
  public B(){
    System.out.print("b");
 }
}
结果 : 1a2b2b
静态代码块只执行一次 , 在类初始化的时候 ,
构造方法会向上执行父级的

1.8接口

在这里插入图片描述
在这里插入图片描述
特点
在这里插入图片描述

1.9多态

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实现多态的三个条件(前提条件,向上转型、向下转型)
1、继承的存在;(继承是多态的基础,没有继承就没有多态)
2、子类重写父类的方法。(多态下会调用子类重写后的方法)
3、父类引用变量指向子类对象。(涉及子类到父类的类型转换)
向上转型 Animal a = new Cat();
将一个父类的引用指向一个子类对象,称为向上转型,自动进行类型转换。此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,而不是父类的方法,此时通过父类引用变量无法调用子类特有的方法.
向下转型 Cat a2 = (Cat)a;
将一个指向子类对象的引用赋给一个子类的引用,成为向下转型,此时必须进行强制类型转换。向下转型必须转换为父类引用指向的真实子类类型,否则将出现ClassCastException,不是任意的强制转换.
向下转型时可以结合使用instanceof运算符进行强制类型转换,比如出现转换异常–ClassCastException.比如:本来是狗,我把它转成猫。就会报这个异常。

原创文章 10 获赞 7 访问量 143

猜你喜欢

转载自blog.csdn.net/qq_45772158/article/details/105882545