java入门——构造器和类的继承

package testClass;

public class Person {
    String name;
    int age;

    //构造器用来生成实例,可以设置一些默认值.
    // 如果不写出来,编译器也会自动生成一个构造器
    //构造器和类同名,不能有返回值,前面加一个public
    //使用new关键字其实是在调用构造器,并在堆中开辟空间
    public Person(){
        this.name = "Tom";
    }
    //有参构造,调用时可以传入参数
    //如果写了有参构造,就必须写出无参构造
    public Person(String name){
        this.name = name;
    }
    //可以有多个构造器
    //类里的方法可以互相调用
    public Person(String name, int age) {
        this(name);//调用其他构造器。当构造器的代码很多时,常用此方法
        this.age = age;
    }
    public void talk(){
        System.out.println("我是"+this.name);
    }
}

package testClass;

//一个子类可以拥有父类的属性和方法,称为继承
//java支持单继承不支持多继承,多继承可以通过接口实现
public class Student  extends Person{

    //Person类public的属性,Student对象都可以使用
    //Private属性不可以继承
    public void study(){
    //创建子类的对象时会先调用父类的无参构造,可以在子类的构造方法中加上super(),明确要先调用父类的无参构造。
        super();//如果想要使用父类的有参构造,就加上参数
        //也可以用super关键字调用父类的其他属性和方法
        super.talk();
        System.out.println(this.name+"在学习。");
    }

}

通过以下代码可以使用上面的两个类

public class Application {
    public static void main(String[] args) {

        //类是抽象的,需要实例化创建对象
        Student jack = new Student();
        jack.name = "Jack";
        jack.age = 15;
        jack.study();
    }
}

当父类子类和方法中都有同名的变量,优先调用方法中的变量,如果想要使用父类的变量就使用super关键字,想使用子类的变量就使用this关键字。同名方法的调用方式类似。

public class Fu{
int age = 50;
}

public class Zi{
int age = 30;
public void print(){
int age = 20;
System.out.println(age);
System.out.println(super.age);
System.out.println(this.age);
}

public class Demo{
public static void main(String[] args){
	Zi z = new Zi();
	z.print();
	}
}

java中只可以单继承,不可以多继承。但是可以多层继承。比如Son继承Father,Father类继承Grandfa类。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值