Java教程4_1(2011 06 12)
来源:互联网 发布:js中bom和dom区别 编辑:程序博客网 时间:2024/05/16 18:10
Java教程4_1(2011 06 12)
一、继承(extends)
1、一个类可以从父类继承方法和成员变量,还可以增加自己的方法和成员能量。
2、java支持单继承,但可以多层继承,继承的时候是不继承父类的构造方法的,如需要调用,应用super();来调用。子类在调用自身的构造方法前,会先调用父类的构造方法。
二、子类对象的实例化过程
注意:
1、 this或super只能作为第一条语句在构造方法中出现
public Lesson4_1(String name,int age)
{
this.name = name;
this.age = age;
}
public Student1(String name,int age)
{
super(name,age);
}
2、 super()和this调用语句不能同时在一个构造方法中出现
三、覆盖方法
1、覆盖方法必须和被覆盖方法具有相同的方法名称参数和返回值类型
2、在子类中调用父类中被覆盖的方法,可以用super()方法的格式调用
3、在覆盖方法时,不能使用比父类中被覆盖的方法更弱的访问权限
四、final关键字
1、final定义的方法不能被继承,父类中定义final方法,其子类不能对其进行覆盖
2、final定义时,可以在定义时就初始化,如果在构造方法中初始化的话,应放在每个构造方法中初始化(假如有多个构造方法)
3、在final前加上static时,只能在定义时就初始化。
4、最大的浮点数是 Float . Max_Value。(Max_Value是一个构造方法)
四、抽象类
1、说明:抽象类中可以有不是抽象的方法
2、abstract int(int x,int y); 和abstract int(int x,int y){}是不一样,后者实现了方法
五、接口(interface)
1、接口是抽象方法的集合
2、接口是一种特殊的抽象类,这种抽象类中包含常量和方法的定义,而没有变量和方法的实现
3、接口中的成员都是public访问类型的,接口里的变量默认状态是加上public static final的所以,不用我们去加上。
4、可以定义一个类用implements关键字去实现一个接口中的全部方法,我们还可以定义一个抽象类用implements关键字去实现一个接口中的部分方法。
六、对象类型的装换
1、子类对象可以自动装换为父类的
2、父类转换为子类的,是强制类型转换
3、我们可以使用instanceof来判断一个实例对象是否属于一个类 例如(a instandeof B)
4、object类的equals方法用来比较对象中的属性是否一模一样(object类是所有类的子类)
七、面向对象的多态性
1、应用程序不必为每个派生类编写功能调用,只需要对去抽象基类进行处理即可。这叫“以不变应万变”
2、派生类的功能可以被基类的引用变量引用,这叫向后兼容,这用可以提高程序的可扩充性和可维护性
3、a.fun();如果闯进去的是一个子类对象,那执行的是子类的方法
4、一个模拟装配电脑的程序
源代码如下:
interface PCI
{
void start();
void stop();
}
class NetWorkCard implements PCI
{
public void start()
{
System.out.println("Send...");
}
public void stop()
{
System.out.println("stop...");
}
}
class SoundCard implements PCI
{
public void start()
{
System.out.println("du..du");
}
public void stop()
{
System.out.println("sound stop");
}
}
class MainBoard
{
public void UsePCICard(PCI p)
{
p.start();
p.stop();
}
}
public class Assenbler
{
public static void main(String[] args)
{
MainBoard mainBoard = new MainBoard();
NetWorkCard nCard = new NetWorkCard();
SoundCard soundCard = new SoundCard();
mainBoard.UsePCICard(nCard);
mainBoard.UsePCICard(soundCard);
mainBoard.UsePCICard(new PCI()
{
public void start()
{
System.out.println("Test star");
}
public void stop()
{
System.out.println("Test stop");
}
}
);
}
}
运行结果:
Send...
stop...
du..du
sound stop
Test star
Test stop
- Java教程4_1(2011 06 12)
- Java基础3_1面向对象(2011 06 12)
- Java基础复习2_1(2011 06 10)
- java _1
- 百度地图4.1_1开发教程(4)MarkerDrag
- 12_1
- 4_1
- 菜鸟教程之shell _1
- 操作系统高级教程系列_1
- Java面试题_1
- Java 实验6_1
- Java 实验8_1
- JAVA高新技术_1
- Java多线程_1
- Java语法_1
- java 代码片段_1
- Java综合_1
- JAVA学习日志_1
- (黑马)java基础加强1
- HI
- 初学者的 google seo 基础
- XML约束模式
- IT工程师必看的十条建议
- Java教程4_1(2011 06 12)
- sipX简介
- asp.net跳转页面的三种方法比较
- Xml编写规范简介
- killprocess
- Eclipse 发生 to generate dependencies you must specify either -M or -MM 错误
- Dijkstra+最小堆实现(续)--heap_insert的实现
- FreeSWITCH 与 Asterisk
- 系统分析师之路2--系统的开发方法