JAVA学习笔记之多态

1.类型转换

类型转换分为自动类型转换和强制类型转换

1.自动类型转换/向上类型转换:父类(小类型)->子类(大类型)(不存在风险)

Animal animal = new Animal();
Dog dog = new Dog();
animal = dog;                   //自动类型转换,不存在风险

2.强制类型转换/向下类型转换:子类(大类型)->父类(小类型)(存在风险)

dog = animal;                   //强制类型转换,存在风险

2.instanceof语句

作用:判断某个对象是否是某个类型的对象或其子类的对象
用法:

对象 instanceof 类型; //返回布尔值

3.抽象类

关键字为abstract

public abstract class 类名{
    类成员;
    public abstract void 方法名();//抽象方法,只能在抽象类中声明,不需要实现,在抽象类的子类中必须重写
}

4.接口

接口关键字为interface,语法与class类似,为:

public interface 接口名 extends [父接口名1,父接口名2,...]{//通常使用public修饰
    常量定义;
    抽象方法定义;//且方法修饰符通常是public或不是用修饰符
}

接口中的变量定义时都会自动以 public static final 修饰
接口中的方法定义时都会自动以 public abstract 修饰

使用接口语法

修饰符 class 类名 extends 父类名 implements 父接口名1,父接口名2,...{
    //由于接口中的方法都是抽象方法,所以使用了接口后必须实现该接口中的抽象方法
}

使用接口对象语法:

interface i = new 实现了该接口的类名();//不过只能访问接口内的成员

在接口中使用匿名内部类:
匿名内部类使用语法格式:

interface i = new interface(){
    @Override
    public void method(){
        方法实现体;
    }
}

//或
new interface(){
    @Override
    public void method(){
        方法实现体;
    }
}

也就是说不需要使用一个外部类来实现一个接口里的抽象方法,而是通过匿名内部类的方式直接实现并使用接口内的抽象方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值