继承知识点

继承:子类的名字extends
语法:子类的名字extends父类的名字
父类:
public class Uncle {
private String name;
private int age;

public  void faHongbao(){
    System.out.println("舅舅发红包");
}

}

子类一:
public class UncleOne extends Uncle {

public void  chouyan(){
    System.out.println("大舅喜欢抽烟");
}
//方法的重写 覆写
public void faHongbao(){
    System.out.println("大舅家道中落,发不起红包了,该送祝福了");
}

}
子类二:
public class UncleTwo extends Uncle {
public void hejiiu(){
System.out.println("二舅喜欢喝酒");
}
public void faHongbao(){
System.out.println("二舅不仅发红包,还送茅台");
}
}

1.子类能够继承到父类所有的不是的私有的属性和方法

2.子类能够复写父类的方法,如果没有覆写,调用的是父类的方法,
子类一旦复写,优先调用复写后的子类方法

3.除了复写,子类可以扩充父类没有的方法

优点:

1.实现代码的复用

2.有利于子类代码的扩展

多重继承 不允许 语法错误

public class Temp extends UncleOne,UncleTwo{
}

多层继承

public class Uncle {
private String name;
private int age;

public  void faHongbao(){
    System.out.println("舅舅发红包");
}

}
public class UncleOne extends Uncle {

public void  chouyan(){
    System.out.println("大舅喜欢抽烟");
}
public void faHongbao(){
    System.out.println("大舅家道中落,发不起红包了,该送祝福了");
}

}
public class UncleOneSon extends UncleOne{
public void faHongbao(){
System.out.println("大舅的儿子厉害了,接着发红包");
}
}

类继承的加载顺寻

先加载父类,在加载子类

祖先类的构造方法最先执行,祖先类最先被创造出来,其次是父类,最后是子类

在构造方法当中会隐形的调用super()超类 父类的无参构造方法

final 最终的,最后的

被final修饰的成员不可以被改写

1.final修饰的变量值不能发生修改PI= 3.1415

修饰基本数据类型,其值不能发生改变;修改引用数据类型,列如数组,数组中的值
可以发生修改,但是数组名不能指向新的空间

  1. final 修饰的方法不能被重写

  2. final 修饰的类不能被继承

多态

一个父类有多个子类

把子类的对象赋值给父类的过程叫做向上转型

把父类的对象赋值给子类的过程叫做向下转型

语法:

正常语法:

类名 对象名 = new 类名();

向上转型:

父类类型 对象名 = new 子类的类名();

向下转型:

子类类型 对象名 =(子类类型)父类的对象

    //向上转型
      Uncle uncleOne1 =new UncleOne();
      uncleOne1.faHongbao();

      Uncle uncleTwo2 = new UncleTwo();
      uncleTwo2.faHongbao();
      //向下转型
       Uncle uncle = new Uncle();
       UncleOne temp = (UncleOne) uncle;

你可能感兴趣的:(继承知识点)