java(3-1)
来源:互联网 发布:对外贸易数据 编辑:程序博客网 时间:2024/06/03 14:49
①类、超类和子类:
在java中与c++定义继承类得到方式十分相似。java用关键字extends代替了c++中的冒号(:)。在java中所有继承都是公有继承,而没有c++中的私有继承和保护继承。
在Java中对于已存在的类称为超类(superclass)、基类或父类;新类称为子类,派生类或孩子类。
子类的方法不能直接访问父类的私有域。对此我们可以通过调用超类的get方法。例如:
public double getSalary(){ double baseSalary = super.getSalary(); return baseSalary + this.bonus;}
有些人认为super和this引用是类似的概念,实际上,这是错误的。应为super不是一个对象的引用,不能将super赋给一个对象变量,super只是一种指示编译器调用超类方法的特殊关键字。
现在我们来演示一个构造器:
public Mannger(String name,double salary,int year,int month,int day){ super(name,salary,year,month,day); bonus = 0; }
注意方法内的第一行,这里的关键字super具有不同的含义。super(n,s,year,month,day)是调用超类中含有 n s month day 参数的构造器的简写形式。使用super调用构造器的语句必须是子类构造器的第一句。如果子类的构造器没有显式的调用超类的构造器,则将自动地调用超类默认(没有参数)的构造器。如果超类没有不带参数的构造器,并且在子类的构造器中又没有显式的调用超类的其他构造器,则Java编译器将报告错误。
回忆下,关键字this有两个用途,一是引用隐式参数,二是调用该类其他的构造器。同样,super关键字也用两个用途:一是调用超类方法,而是调用超累的构造器。在调用构造器时,这两个关键字的使用方式很相似。调用构造器的语句只能作为一个构造器的第!一!条!语句!出现!!!
②继承:
可以将一个子类的对象赋给超类变量。在Java程序语言中,对象的变量是多态的。一个超类变量既可以引用一个自己的对象,也可以引用任何一个子类的对象。然而不能将一个超类的引用赋给子类变量 。
同时,在覆盖超类方法时,如果超类的一个方法为public,子类方法一定声明为public。
有时候,可能希望阻止人们利用某个类定义子类。不允许扩展的类被称为final类。如果在定义类的时候使用了final修饰符就表明这个类是final类。
类中的特定方法也可以被声明为final。如果这样做,子类就不能覆盖这个方法。(如果将一个类声明为final,只有其中的方法自动称为final,而不包括域。)
前面有,域也可以被声明为final。对于final域来说,构造对象就不允许改变他们的值了。对于final域来说,构造对象之后就不允许改变他们的值了。
③强制类型转换:
在之前,讲过将一个类型强制转换成另一个类型的过程被称为类型转换。java语言提供了一种专门用于进行类型转换的表示法。例如:
double x = 3.405;int nx = (int)x;
在java中,当一个值存入变量时,编译器会检查是否允许该操作。将一个子类的引用赋给一个超类变量,编译器是允许的。但是将一个超类的引用赋给一个子类变量,必须!进行!类型!转换!这样才能通过运行时的检查
否则,java运行时就会报告错误!因此,应该养成一这样一个良好的程序设计习惯:在进行类型转换之前,先查看一下是否能够成功地转换。这个过程简单地使用了instanceof操作符就可以实现
Manager boss = new Manger();if(staff[1] instanceof Manager){ boss = (Manager)staff[1];}
最后,如果这个类型传唤不可能成功,编译器就不会进行这个类型转换。例如:
String c = (String)staff[1];
将会产生编译错误,这是因为String不是staff 那个数组的类的子类 。
- JAVA 3D-1
- java应用技术 1(3)
- java应用技术 3(1)
- Java(1-3)
- java(3-1)
- java.1 java初识
- Java-----1、Java概述
- Java核心技术1-3章
- Java学习笔记1-3
- Java.作业3 看电视1
- 3-1、java.util.AbstractCollection
- Java 编程思想,1-3
- Think In Java之Java基础(1-3章)
- Java笔记1 Java编程基础<3>数组运用
- Java核心技术 卷1 读书笔记 (3 Java基本程序设计结构)
- 自学Java系列 笔记1 java的基本语法3
- 贪吃蛇(java版本)留作回忆【共三份文件:1、 TestSnake.java 2、Snake. java 3、Food.java】
- [Java Plasterer] Java Components 3:Java Enum
- Maven 管理SSM框架的pom.xml配置文件
- leetcode 345. Reverse Vowels of a String 反转字符串元音字符
- java递归实现选择排序
- Digits of Factorial
- python中的彩蛋
- java(3-1)
- 高并发解决方案-负载均衡
- vi使用的一些技巧
- 数字图像处理——轮廓
- 实现一个通用的生产者消费者队列(c语言版本)
- java后端解决重复提交问题
- c++中构造函数及析构函数特性
- 借鉴--阮一峰博客之Jquery设计思想
- HOJ 2715 Matrix3