final,多态,接口,内部类

final

final +class :该类没有子类,不允许被继承
final +方法 : 该方法不允许被子类重写,但是可以正常被子类正常使用
final +修饰方法内的局部变量时,该变量一旦赋值,该变量不允许修改了
final+类中成员属性,赋值过程:1.定义直接初始化 2.构造方法 3.构造代码块

多态

要满足继承关系

接口

一个类实现一个接口用implements关键字+接口名称
一个类实现一个接口的时候必须实现接口里面的方法(就是把方法重写)
接口可以实现继承,可以同时继承多个父接口,类可以同时实现多个接口

内部类

成员内部类

persion是外部类,Hearth是内部类,beat是内部类的一个方法
//获取成员内部类对象实例,方式1:new 外部类.new 内部类
		Person.Heart myHeart=new Person().new Heart();
		System.out.println(myHeart.beat());
		
		//获取成员内部类对象实例,方式2:外部类对象.new 内部类
		myHeart=lili.new Heart();
		System.out.println(myHeart.beat());
		
		//获取成员内部类对象实例,方式3:外部类对象.获取方法
		myHeart=lili.getHeart();
		System.out.println(myHeart.beat());


// 成员内部类
	/*
	 * 1、内部类在外部使用时,无法直接实例化,需要借由外部类信息才能完成实例化 
	 * 2、内部类的访问修饰符,可以任意,但是访问范围会受到影响
	 * 3、内部类可以直接访问外部类的成员;如果出现同名属性,优先访问内部类中定义的 
	 * 4、可以使用外部类.this.成员的方式,访问外部类中同名的信息
	 * 5、外部类访问内部类信息,需要通过内部类实例,无法直接访问 
	 * 6、内部类编译后.class文件命名:外部类$内部类.class
	 * 7、内部类中是否可以包含与外部类相同方法签名的方法?以及如何调用?
	 */
/*
// 静态内部类
	/*
	 * 1、静态内部类中,只能直接访问外部类的静态成员,如果需要调用非静态成员,可以通过对象实例 new Person().eat();
	 * 2、静态内部类对象实例时,可以不依赖于外部类对象
	 * 3、可以通过外部类.内部类.静态成员的方式,访问内部类中的静态成员 
	 * 4、当内部类属性与外部类属性同名时,默认直接调用内部类中的成员;
	 * 如果需要访问外部类中的静态属性,则可以通过 外部类.属性 的方式; 
	 * 如果需要访问外部类中的非静态属性,则可以通过 new 外部类().属性的方式;
	 */

//获取静态内部类对象实例
		Person.Heart myHeart=new Person.Heart();
		Person.Heart.say();
	// 方法内部类
	/*
	* 1、定义在方法内部,作用范围也在方法内
	* 2、和方法内部成员使用规则一样,class前面不可以添加public、private、protected、static
	* 3、类中不能包含静态成员 
	* 4、类中可以包含final、abstract修饰的成员
	*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L小涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值