java学习123之final关键字和super关键字

  final关键字可以修饰类、方法、属性和变量。

  1、final修饰类,则该类不允许被继承。若写一个子类继承该类则编译器报错。

  2、final修饰方法,则该方法不允许被覆盖(重载)。若重载则编译器报错。

  3、final修饰属性,则该类的属性不会进行隐式的初始化(类的初始化必须有值,或在构造方法中)赋值,但二者只能选其一。若不初始化或者同时在属性和构造反法中都初始化则编译器报错。

  4、final修饰变量,则该变量的值只能赋一次值,即变为常量。若对其再次复制则编译器报错。

  super表示父类,在子类中若重载了属性和方法,想要调用父类的方法和属性可以用super.属性(方法)。注意,当创建子类对象时,先创建一个父类对象,但是如果子类直接继承了父类的属性和方法(即没有重载),则只存在一个属性和方法,即使用super只能访问到最后被修改的属性和方法。例子如下

package common;

public class Animal {
	public int age;
	public String name;
	public Animal(){
		System.out.println("Animal类执行了");
		age= 20;
		System.out.println(age);
	}
}
 

package common;

public class Dog extends Animal {
	<span style="color:#33CC00;">public int age;</span>
	public Dog(){
                System.out.println("Dog类执行了");
		age = 15;
		System.out.println(age);
	}
	public void Methord(){
		System.out.println(super.age);
	}
package common;

public class Initial {
	public static void main(String[] agrs){
		Dog dog = new Dog();
		dog.name = "kitty";
		dog.Methord();
	}
}

 

程序输出结果为

Animal类执行了
20
Dog类执行了
15
20

但若把Dog类中的绿色字体去掉,则输出结果为
Animal类执行了
20
Dog类执行了
15
15

  子类构造的过程中必须调用父类的构造方法,默认情况下调用父类无参的构造方法,若显式调用父类的构造方法,可以用super();写在子类构造方法中的第一行,但若父类
只提供了有参的构造方法,(系统不再提供默认无参构造方法),且在子类中没有显式调用父类的构造方法,则编译出错。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值