抽象类和接口 简述

本文详细介绍了Java中的抽象类和接口的区别与联系。抽象类包含抽象方法,不能被实例化,需要被继承,子类必须重写所有抽象方法。接口则只能包含常量和抽象方法,不能实例化,通过`implements`实现。多态是Java的重要特性,允许一个类型的引用指向不同对象,实现不同功能。内部类是定义在另一个类内部的类,服务于外部类,可以直接访问外部类的成员。匿名内部类用于快速创建一次性使用的类对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.抽象类

1.抽象方法:abstract修饰;只有方法名,没有方法体;解决父类方法的不确定性;

2.抽象类: abstract修饰;包含抽象方法的类必是抽象类;抽象类不一定有抽象方法;

3.抽象类不能被实例化;需要被继承;子类也可为抽象类;子类要重写父类所有抽象方法;

4.abstractfinal不能同时使用

.抽象接口

1.接口中只能包含常量和抽象方法;接口不能实例化;interface定义; implements实现;

2.子类实现接口,必须重写所有抽象方法;一个类可以实现多个接口用隔开;

3.接口和父类同时存在时,要先继承再实现接口; 接口与接口之间可以继承;

4.引用什么看类型;

.多态(属性不具备多态)

1.意义:(1)一个类型的引用在指向不同的对象时有不同的实现;

            People p1=newStudent(); 

            p1.work();//学习   

            p1.name;调用People的name属性

            People p2=new Teacher(); 

            p2.work();//授课   

            p2.name;调用People的name属性

           (2)同样一个对象造型成不同类型时,会有不同功能;

              People p=new People();

              Student student=p;          student.study();

              Teacher teacher=p;          teacher.teacher();

2.可以向上造型的类型:

 (1)父类的类型  

 (2)其实现的接口类型

3.强制转型:大类型到小类型必须强转(成功与否看对象)

   前提:(1)变量指向的对象确实是该子类类型;

        (2)变量指向的对象确实实现了该接口;  

  在强制转型中,可以通过instanceof判断某个引用指向的对象是否为指定类型(返回boolean类型)

.内部类

 1.一个类可以定义在另一个类的内部,内部的类称为Inner,所在类为Outer;

 2.Inner定义在Outer内部,只服务于Outer,对外部不具备可见性,Inner可以直接调用Outer的成员和方法(包括私有);内部类通常只在外部类中被创建(构造或其他方法);

 3.匿名内部类:如果需要创建一个类的对象,而对象创建后,类的价值不存在了,该类不需要命名   

            例:interface Info{  成员  }

                      class Outer{

                       main(){

                       Info o=new Info();//错误,接口不能实例化

                       Info o=new Info(){成员};//正确,创建接口的实现类对象,实现类省略

(匿名类实现的接口或继承的父类)

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值