继承与抽象类

一、继承

Java面向对象的编写方式有三大特性,封装、继承与多态,现总结关于继承的一些知识点。

1、继承体现在类与类之间的关系,Object为java所有类的父类

2、实现类的继承通过关键字extends来实现,如:class 子类  extends 父类  {    //类体       }

3、类的单根性:一个类只能有一个父类,这点与C语言或C++不同,注意区分

4、当子类和父类在同一个包的时候:父类中的private修饰的成员无法被子类继承,其余成员可以被继承

   当子类和父类不在同一包中:父类中的private和默认修饰的成员无法被继承,public和protected可以跨包继承;

5、继承的优点:提升代码的复用性,减少代码冗余

6、在Myeclipse中查看继承架构图的快捷键为ctrl +T  ,查看类中所有成员快捷键为ctrl + O

7、native修饰符表示不是由java实现的,而是由其它语言比如C语言实现

8、final关键字:修饰常量(值不能被改变),修饰类(该类不能被继承,比如String和System),修饰方法(该方法不能被子类重写)

9、super:超类 super代表父类的对象

二、构造方法

1、构造方法的特点:方法名与类名完全相同     没有返回值类型

2、执行时机:当类在实例化过程中,会自动调用构造方法

3、构造方法的作用:完成类的变量的初始化工作

4、构造方法快捷键:alt+shirf+s generate constructor........

5、@Override:注解 标识的作用

6、子类在实例化的过程中,会先执行父类的无参构造函数super(),为隐式调用,带参构造必须显式调用,且必须写在第一行

三、抽象类

  1、抽象类通过关键字abstract进行修饰

  2、抽象类的内部可以存在抽象方法:(1)使用abstract关键字修饰   (2)抽象方法不能存在方法体   (3)抽象方法必须由子类重写,除非子类也是抽象类,则继续由子类的子类重写

  3、抽象类即可存在抽象方法,又能存在非抽象方法

  4、抽象类可以构造函数

 四、类型转换

  假设Animal类是Tiger类的父类,当用子类创建一个对象,并把对象的引用放在父类的对象中时,比如:

   Animal a;
    a=new Person();

 或

    Animal a;
    Person b=new Person();
    a=b;

   我们称对象a是对象b的上转型对象(好比说“人是动物”)

  上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能。

  1、上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。

  2、上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或子类重写的实例方法。

  3、不要将父类创建的对象与子类对象的上转型对象混淆。

  4、可以将对象的上转型对象再强制转换到一个子类对象,这时,该子类对象又具备了子类所有的属性和功能。

  5、不能将父类创建的对象的引用赋给子类声明的对象。

下例中,monkey是People类对象的上转型对象

class Monkey{
    void crySpeak(String s){
        System.out.println(s);
    }
}

class People extends Monkey{
    void computer(int a ,int b){
        int c=a*b;
        System.out.println(c);
    }
    void crySpeak(String s){
        System.out.println("***"+s+"***");
    }
}
public class lianxi {
    public static void main(String[] args) {
    Monkey monkey=new People();
    monkey.crySpeak("I love this game");
    People people=(People)monkey;
    people.computer(10, 10);
    }
}

 

 

  monkey调用的是子类重写的crySpeak。需要注意的是 monkey.computer(10,10);是错误的,因为该方法是子类新增的方法。

  6、如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类重写的静态方法,只能调用父类的静态方法。

posted @ 2019-05-30 18:06  道友请留步~  阅读(329)  评论(0编辑  收藏  举报