一、
package study;
public class Person extends Animal
{
public void study()
{
System.out.println("我爱学习!");
}
}
②强制类型转换
package study;
public class TestIt
{
public static void main(String[] args)
{
Animal a1=new Person();
//a1是无法调用在Person中定义的study这个功能的;
Person p=(Person)a1;//这里进行强制转换;
p.study();
}
}
二、传值与传址
①在Person中定义一个age
package study;
public class Person extends Animal
{
int age;
public void study()
{
System.out.println("我爱学习!");
}
}
②引用发生两个不同的情况
package study;
public class TestIt
{
public static void main(String[] args)
{
int a =100;
int b =a;//把a复制了一份给b,复制完成之后a和b的关系就断掉了,传值;
a=1000;
System.out.println(b);
Person x =new Person();
x.age=20;
Person y=x;//x的地址给了y,传址;
x.age=30;
System.out.println(y.age);
}
}
结果如下:
100
30
为什么?什么时候传值,什么时候传址
2.传值与传址
简单类型的变量传值 byte,short,int,long / float,double / boolean / char
引用类型的变量传址 String,对象
三、接口
3.接口 interface
接口 有点类似于 继承 中的父类
//想继承多个类
①首先新建一个Student接口
package study;
public interface Student
{
public void study();//抽象方法:接口中只能有抽象方法 abstract method
}
②新建一个Teach接口
package study;
public interface Teacher
{
public void teach();
}
③新建一个Class导入汝休息啊
package study;
public class Assist implements Student, Teacher {
@Override
public void teach()
{
// TODO Auto-generated method stub
}
@Override
public void study()
{
// TODO Auto-generated method stub
}
}
④然后再进行完善
package study;
public class Assist implements Teacher, Student
{
//implements(实现) extends(继承)
//我们要完善接口中的方法
@Override
public void study()
{
System.out.println("我爱学习!");
}
@Override
public void teach()
{
// TODO Auto-generated method stub
System.out.println("我爱讲课!");
}
}
⑤在TestIt进行调用
package study;
public class TestIt
{
public static void main(String[] args)
{
Assist a =new Assist();
a.teach();
a.study();
Teacher t=new Assist();
t.teach();//t.study()是无法调用的,怎么办呢?
//强制类型转换
Assist s=(Assist)t;
s.study();
}
}
顺便讲了一下强制类型转换