|||
1 Java语言只支持单一继承关系,不支持多继承,即一个类只有一个父类。
2 子类继承了成员变量,表示子类被创建时另外开辟了新的空间来存储从父类继承而来的成员变量,其初值应该是父类中该成员变量的初值。但之后,双方的相同成员变量就是彼此相互独立的变量了,即使父类中某个成员变量值发生了改变,子类中的成员变量的值扔保持自己的状态,因为他们是两块不同的存储空间。但如果父类中的成员变量的类型定义也就跟着发生了变化。因此,要注意继承简化程序修改是指变量的类型而不是它的值。
3 在Java语言中,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法覆盖(重写)实现的动态多态性(运行时多态).
4 方法覆盖(重写)时必须遵循两个原则,否则编译器会指出程序出错。
(1)覆盖的方法不能比被覆盖的方法有更严格的访问权限。
(2)覆盖的方法不能比被覆盖的方法产生更多的异常。
5 对于含有固定初始化值(即编译期常数)的final static基本数据类型,它们的名字根据规则要全部大写。
6 通常,只有在方法的代码量非常少,或者想明确禁止方法被覆盖(重写)的时候,才应考虑将一个方法设为final。
7 用final用来修饰一个类,意味着该类成为不能被继承的最终类。
8 抽象类在使用上有特殊的限制,即不能创建抽象类的实例,在Java中要将抽象类和抽象方法带上abstract标记。
9 接口: 属性都是常量,方法都是抽象方法,没有方法体。
从结构上说。接口有如下的特点:
(1) 接口用关键字interface来定义,而不是class。
(2) 接口中定义的变量全部是静态变量,而且都是最终的静态变量。
(3) 接口中没有自身的构造方法,而且定义的方法都是抽象方法,即只提供方法的定义,而不提供具体的实现。
(4) 接口采用多重继承机制,而不是采用类的单继承机制。
10 接口使用默认的访问控制,即接口只能被与它处在同一包中的成员访问。
11 如果一个类实现了一个接口,则必须实现接口中的所有方法,且方法必须声明为public.
12 接口不可实例化对象。
13 含有抽象方法的类即为抽象类:
/*
抽象类不能实例化;
抽象类为子类提供了模板;
抽象类只能用来被继承;
抽象方法必须被子类实现,不实现编译器会报错;
抽象类将设计和实现分开。
(C++)
如果派生类给出所有纯虚函数的函数实现,这个派生类就可以定义自己的对象,因为 不再是抽象类;反之,如果派生类没有给出全部纯虚函数的实现,这时的派生类仍然是 一个抽象类。
*/
public abstract class Animal{
public abstract void run();//只有声明,没有实现。
}
14 一个抽象类可以继承另一个抽象类;
15 public interface Myinterface{
//接口中只有:常量,抽象方法!
//接口的意义:实现设计与实现的分离
//一个类可以实现多个接口。
//接口可以多继承。
/*public static final 接口中常量定义时,写或不写都是这样*/
String MAX_GREAD = "BOSS";
int MAX_SPEED = 120;
public abstract void test01();
public abstract int test02(int a, int b);
}
public class MyClass implements MyInterface{
public void
}
16 多态的存在有3个必要条件:
要有继承;要有方法重写;父类引用指向子类对象:
例如:
Animal a = new Cat(),
Animal b = new Dog(),
Animal c = new Pig()。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-20 02:35
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社