【读书笔记】java语言与面向对象程序设计4:继承与多态

来源:互联网 发布:sql语言属于什么语言 编辑:程序博客网 时间:2024/06/06 06:44

1.当一个类获取另一个类中所有非私有的数据和操作的定义作为自己的部分或全部成分时,就称这两个类之间具有继承关系。

2.Java语言之支持单重继承。

3.子类中定义了与父类同名的属性变量,当子类执行继承自父类的操作时,处理的是继承自父类的变量,而当子类执行它自己定义的方法时,所操作的就是它自己定义的变量。

4.子类可以重新定义与父类同名的方法,子类隐藏父类的域只是使之不可见,父类的同名域在子类对象中仍然占有自己的独立的内存空间;而子类方法对父类同名方法的覆盖将清除父类方法占用的内存,从而使父类方法在子类对象中不复存在。

5.方法的覆盖必须与父类完全相同的方法名,返回值和参数列表,否则不视为覆盖。

6.this表示的是当前对象本身,一般情况下,this用来把当前对象的引用作为参数传递给其它的对象或方法。

7.super用于在一个类中引用它的直接父类。

8.所谓多态,一般是指一个程序中同名的不同方法共存的情况,面向对象程序多态可以表现在很多方面:子类对父类方法的覆盖;一个类中方法的重载;将子类的对象作为父类的对象。

9.重载是在一个类中定义同名方法的情况,方法一般采用不同的形式参数列表,包括形式参数的个数,类型和顺序的不同,来区分重载的方法。

10.子类对象可以作为父类对象使用。Employee emp = new Manage();

11.当Employee类和Manage类都有getInfo方法时,emp.getInfo调用的是子类的方法。

12.通过父类变量(emp)可以让一个子类的对象做父类对象可以做的事情,不能让子类对象做父类对象不能做的事情,即使子类对象有这样的功能。

13.如果父类对象指向的实际是一个子类对象,那么可以用强制转换将这个父类变量引用转换为子类对象的引用。Manage mgr; mgr = (Manage)emp;。

14.instanceof判断究竟是哪类对象的引用。emp instanceof Employee == FALSE;emp instanceof Manage == TRUE;

15.一个方法的参数为Employee类型的变量,调用该方法时实参可以是Emplloyee,Manage,Director对象,而在而在方法的代码中,可以通过判断对象的实际类型让不同的对象做不同的事。

16.一个类的不同 构造函数之间可以相互调用,this(构造函数的参数)。

17.调用父类的构造函数:

     (1)如果子类自己没有定义任何构造函数,那么在创建子类对象时将调用父类无参数的构造函数。

     (2)如果子类自己定义了构造函数,则在创建子类对象时,系统将首先隐含执行父类无参数的构造函数,然后再执行子类自己的构造函数。

     (3)如果在子类自己定义的构造函数中,利用super关键字显式地调用父类的构造函数,系统将不再隐含调用父类无参数的构造函数。注意:super的显式调用语句必须是子类构造函数的第一个可执行语句。

18.package 包名;作为Java源文件的第一条语句,指明该编译单元定义的类属于哪个包,包名采用小写,一个编译单元只允许有一个package语句。

19.D:\temp\d200>  javac -d d:\temp D200_Card.java

     "-d"后面指定创建包的位置

20.接口(interface)是用来实现类间多重继承功能的结构。Java中的接口定义了若干个抽象方法和常量。

21.申明接口就如申明类一样,将类的关键字class改为接口的关键字interface;接口可以同时继承多个父接口,各个父接口之间用','分割。

22.接口中的属性都是用fina修饰的常量,接口中的方法都是用abstract修饰的抽象方法。

23.public static final 修饰常量,public abstract 修饰方法;

24.实现接口:

    (1)在类的申明部分,用implements关键字声明该类将要实现哪些接口。

    (2)如果实现接口的类不是abstract的抽象类,则在类的定义部分必须实现指定接口的所有抽象方法,即为所有抽象方法定义方法体,而且方法头部分应该与接口中的定义完全一致,即有完全相同的返回值和参数列表。

    (3)如果实现某接口的类不是abstract类,则它可以不实现该接口所有的方法。但是对于这个抽象类任何一个非抽象的子类而言,它们父类所实现的接口中的所有抽象方法都必须有实在的方法体。这些方法体可以来自抽象的父类,也可以来自子类本身,但是不允许存在未被实现的接口方法。这主要体现了非抽象类中不能存在抽象方法的原则。

    (4)一个类在实现某接口的抽象方法时,必须使用完全相同的方法头。如果所实现的方法与抽象方法有相同的方法名和不同的参数列表,则只是在重载一个新的方法,而不是实现已有的抽象方法。

    (5)接口的抽象方法的访问限制符都已指定为public,所以类在实现方法时,必须显式地使用public修饰符,否则将被警告为缩小接口定义的方法的控制范围。

0 0
原创粉丝点击