JAVA——面向对象——内部类
Posted 叶不修233
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA——面向对象——内部类相关的知识,希望对你有一定的参考价值。
JAVA——面向对象——内部类
一、内部类的分类
内部类的种类:成员内部类、静态内部类、局部内部类、匿名内部类
二、内部类-匿名内部类(重点)
应用场景:某个类或者某个类对象只应用一次,就可以使用匿名内部类,不必去先创建具体的类继承父类或者实现接口,再创建对象。
匿名内部类能够使你的代码更加简洁。
语法:
父类名(接口名) 对象名 = new 父类名(接口名)
重写的方法;
举例:
接口Animal,具有play()方法
/**
* 新建一个接口Animal
* @author z
*
*/
public interface Animal
void play();
想实现Animal子类对象实例化,又不想新建一个子类,可以使用匿名内部类
public class Test
public static void main(String[] args)
//非匿名常规方法
//1.新建一个Java文件-为Animal类创建子类Cat
//2.新建一个Java文件-在main方法中实例化子类Cat的对象cat
//匿名内部类
//在main方法中创建Animal类的匿名子类,同时实例化子类的对象cat
//匿名子类1,实例化子类的对象cat
Animal cat = new Animal()
@Override
public void play()
System.out.println("猫吃鱼");
;
//匿名子类2,实例化子类的对象dog
Animal dog = new Animal()
@Override
public void play()
System.out.println("狗吃肉");
;
//匿名子类3,实例化子类的对象ultraman
Animal ultraman = new Animal()
@Override
public void play()
System.out.println("奥特曼打小怪兽");
;
//调用这些匿名子类对象的play方法
cat.play();
dog.play();
ultraman.play();
三、内部类-成员内部类、局部内部类(了解)
成员内部类:类里再写类
局部内部类:方法里写类
举例:
创建类
public class Teacher
/**
* 成员内部类
* 在类Teacher里创建成员内部类Student
* @author z
*
*/
public class Student
public void study()
System.out.println("学习");
public void teach()
/**
* 局部内部类
* 在方法teach里创建类Son
* 方法里创建的类不能用public修饰,因为只能在该方法中被调用
* @author z
*
*/
class Son
public void play()
System.out.println("玩耍");
Son son = new Son();
son.play();
实例化对象
public class Test
public static void main(String[] args)
//创建成员内部类对象
Student stu = new Teacher().new Student();
stu.study();
//调用局部内部类
Teacher t = new Teacher();
t.teach();
以上是关于JAVA——面向对象——内部类的主要内容,如果未能解决你的问题,请参考以下文章