1、数组(array)
- 可以存放多个同一种类型的变量
-
数组的下标或索引,从0开始
package javastudy;
public class Testit {
public static void main(String[] args) {
Animal a[]=new Animal[4];
a[0]=new Animal();
a[1]=new Dog();
a[2]=new Cat();
a[3]=new Person();
for(int i=0;i<=3;i++) {
a[i].eat();
}
}
}
2、 强制类型转换
在person类中定义一个方法study
package javastudy;
public class Person extends Animal {
// @Override
// public void eat() {
// // TODO Auto-generated method stub
// super.eat();
// }
public void study() {
System.out.println("我爱学习!");
}
}
此时在testis类中,为Person类生成一个对象a,但是只能引用animal中的eat(),而不能引用Person定义的study,此时需要使用强制类型转换
Animal a=new Person();
Person p=(Person)a; //强制类型转换
p.study();
3、 传值和传址
- 简单类型的变量传值:byte、short、int、long、float/double、boolean、char
- 引用类型的变量传址 String、对象
Person类
int age;
Testit类
int a=100;
int b=a;
a=1000;
System.out.println("a的值:" +a+","+"b的值:"+b); //传递数值
//
Person x=new Person();
x.age=20;
Person y=x;
x.age=30; //传递地址
System.out.println("x的值:"+x.age+";"+"y的值:"+y.age);
4、接口
- 类似于继承中的父类,但是继承(extends)中要求一个子类不能继承多个父类
-
接口中只能有抽象方法abstract method
设置自动补全类名,在window---preferences--java--editor--content assist中将a-z都添加进去。
首先创建一个接口interface,在“新建”---“interface”中新建student
接口student
package javastudy;
public interface Student {
public void studyed();//接口中只能有抽象方法,不能够实现
}
接口teacher
package javastudy;
public interface Teacher {
public void teached();
}
Assist类实现接口teacher、student
package javastudy;
public class Assist implements Teacher, Student { //implements实现接口中定义的方法
@Override
public void studyed() {
// TODO Auto-generated method stub
System.out.println("我爱学习!");
}
@Override
public void teached() {
// TODO Auto-generated method stub
System.out.println("我爱讲课!");
}
}
Testit类
Assist a=new Assist();
a.studyed();
a.teached();
Teacher t=new Assist(); //也可以用父类的引用指向派生类的对象,Teacher当做Assist的父类
t.teached();
Assist s=(Assist)t;
s.studyed();