java:14-类型转换与接口

来源:互联网 发布:什么软件买东西便宜 编辑:程序博客网 时间:2024/06/03 15:15

一、

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();    }}

顺便讲了一下强制类型转换

原创粉丝点击