java中super关键字
2017-09-19 10:48
239 查看
1、在对象的内部使用,可以代表父类对象。
a、访问父类的属性
super.age
b、访问父类的方法
super.eat()
public class Animal{
public int age = 10;
public string name;
public void eat(){
System.out.println("动物可以吃东西")
}
}
public class Dog extends Animal{
public int age = 20;
public void eat(){
System.out.println("狗可以吃东西")
}
public void method(){
System.out.println(super.age)
}
}
public class Initail{
public static void main(String【】 args){
Dog dog = new Dog();
dog.method();
}
}
输出结果:10
2、子类的构造过程中必须调用其父类的构造方法
public class Animal{
public int age;
public string name;
public void eat(){
System.out.println(" 年龄"+age+"动物可以吃东西")
}
public Animal(){ //构造方法
System.out.println("Animal 类执行了")
}
}
public class Dog extends Animal{
public void eat(){
System.out.println(" 年龄"+age+"狗可以吃东西")
}
public Dog(){
System.out.println("Dog 类执行了")
}
}
public class Initail{
public static void main(String【】 args){
Dog dog = new Dog(); //创建子类对象的时候 自动执行 父类的构造方法
}
}
结果:Animal 类执行了
Dog 类执行了
3、如果子类的构造方法中没有显示调用父类的构造方法,则 系统默认调用父类无参的构造方法。
如果 显示 的调用构造方法,必须在 子类的构造方法的第一行
public class Dog extends Animal{
public Dog(){
super(); //显示 的调用构造方法,必须在 子类的构造方法的第一行
System.out.println("Dog 类执行了")
}
}
4、如果子类的构造方法中没有显示调用父类的构造方法,父类也没有无参的构造方法,则编译出错
a、访问父类的属性
super.age
b、访问父类的方法
super.eat()
public class Animal{
public int age = 10;
public string name;
public void eat(){
System.out.println("动物可以吃东西")
}
}
public class Dog extends Animal{
public int age = 20;
public void eat(){
System.out.println("狗可以吃东西")
}
public void method(){
System.out.println(super.age)
}
}
public class Initail{
public static void main(String【】 args){
Dog dog = new Dog();
dog.method();
}
}
输出结果:10
2、子类的构造过程中必须调用其父类的构造方法
public class Animal{
public int age;
public string name;
public void eat(){
System.out.println(" 年龄"+age+"动物可以吃东西")
}
public Animal(){ //构造方法
System.out.println("Animal 类执行了")
}
}
public class Dog extends Animal{
public void eat(){
System.out.println(" 年龄"+age+"狗可以吃东西")
}
public Dog(){
System.out.println("Dog 类执行了")
}
}
public class Initail{
public static void main(String【】 args){
Dog dog = new Dog(); //创建子类对象的时候 自动执行 父类的构造方法
}
}
结果:Animal 类执行了
Dog 类执行了
3、如果子类的构造方法中没有显示调用父类的构造方法,则 系统默认调用父类无参的构造方法。
如果 显示 的调用构造方法,必须在 子类的构造方法的第一行
public class Dog extends Animal{
public Dog(){
super(); //显示 的调用构造方法,必须在 子类的构造方法的第一行
System.out.println("Dog 类执行了")
}
}
4、如果子类的构造方法中没有显示调用父类的构造方法,父类也没有无参的构造方法,则编译出错
相关文章推荐
- java this和super关键字 有什么作用
- Java关键字this、super使用总结
- java this和super关键字
- 黑马程序员--java基础--关键字this和super
- Java中 super关键字
- Java关键字this与super用法总结
- java基础:super关键字
- Java中super关键字的用法及示例
- java中super关键字的理解(自己测试得出的结论)
- Java中的超类--super关键字
- JAVA面向对象-----super关键字
- Java 泛型(super和extends关键字)
- Java关键字this、super使用总结
- Java基础-super关键字与this关键字
- Java super关键字用法
- java关键字之—super
- java 类与对象 3---super关键字
- java中this与super关键字的使用方法
- Java学习笔记之深入理解关键字super
- java基础学习总结——super关键字