Java中super的用法
2022-01-18 23:18
1071 查看
super用于子类调用父类方法(private保护的方法除外)
子类默认会调用父类的无参构造器(在子类无参构造器的第一行中应为super())
1、注意如果父类定义了有参构造器那么子类便无法调用默认的无参构造器,解决方法应当给父类写出显式的无参构造器,或者子类调用父类构造器时添加参数super(参数);
super的注意点:
1、super调用父类的构造方法,必须写在构造方法的第一行。
2、super必须只能能出现在子类的方法或者构造方法中
3、super和this不能同时调用构造方法。
super与this的区别
1、代表的对象不同
this:本身调用者这个对象
super:代表父类对象的应用
this:没有继承也能用
super:只能在继承中使用
构造方法的区别
this():本类的构造
super():父类的构造
代码解析
//执行方法 public class application { public static void main(String[] args) { /*Demo09 student= new Demo09(); student.setName("dalao"); student.setAge(1000);//不合法数据 System.out.println(student.getName()+"年龄"+student.getAge());//println属于方法的重载 student.setAge(68);//合法数据 System.out.println(student.getAge());//println属于方法的重载 */ Demo11 student = new Demo11(); student.test01("小明"); student.test02(); } }
//父类方法 public class Demo10 /*extends Object*/{ public Demo10(){ System.out.println("父类无参构造器已执行"); } protected String name="小明同学"; public void print(){//假如此处改为private私有其实也可继承只不过应当使用类如get,set方法来访问子类不能直接调用 System.out.println("我是父类"); } }
//子类方法 public Demo11(){ super();//子类会默认调用父类的无参构造器 System.out.println("子类无参构造器已执行"); //super();而且调用父类无参构造器必须放在代码第一行 } private String name ="xiaomingtongxue"; public void test01(String name){ System.out.println(name); System.out.println(this.name); System.out.println(super.name); } public void print(){ System.out.println("我是子类"); } public void test02(){ print(); this.print(); super.print(); }
结果
父类无参构造器已执行 子类无参构造器已执行 小明 xiaomingtongxue 小明同学 我是子类 我是子类 我是父类
相关文章推荐
- Java中static、this、super、final用法简谈(二)
- Java中的Super和this的用法
- java Super 用法详解及实例代码
- Java中super的几种用法并与this的区别
- Java笔记十六.java中的this和super用法
- JAVA-this和super的用法
- JAVA中的继承问题和super的用法
- java的this()与super()用法
- Java中static、this、super、final用法
- java中this 和super 的区别和用法
- java中super的用法和与this的区别
- Java中super的几种用法并与this的区别
- Java中this和super的用法总结
- java中super的两种用法
- Java,super用法实例
- java的super和this关键字用法总结
- java 关键字super详解及用法
- Java类体中的this和super的用法
- java中super和this的用法
- java中super 的两种用法 【转】