继承

/*
 * 继承 :1、实现了代码的复用
 *     2、使类和类之间产生了关系(被继承的的称为父类,继承的称为子类)
 *  继承的特点:
 *    1、单继承的   (java是单继承的)
 *       单继承:一个类可以有一个父类
 *       多继承:一个类可以有多个父类
 *       
 *   继承中成员函数的特点:
 *      重写(覆盖):子类在继承父类时,含有和父类中一样的函数,当创建子类对象时,执行的是重写之后的方法
 *      注意:子类在重写时,权限要大于等于父类中的方法的权限
 *      父类中私有的方法不能被子类重写
 *      静态只能覆盖静态
 *      当父类中的方法的返回值是引用类型时,子类在在重写时返回值类型可以是父类中方法的返回值类型,也可以是其子类 (自定义的类型并且存在继承关系)
 *       
 */


class Person {
	int age;
	String name;
	public void eat() {
		System.out.println("吃饭");
	}

}

class Student extends Person {
	public void student() {
		System.out.println("学习");
	}
}

class Work extends Person {
	public void work() {
		System.out.println("干活");
	}
}

class Demo5 {
	public static void main(String[] args) {
		Work work = new Work();
		work.eat();
	}

}

=================================================================================================================

/*继承中构造函数的特点:在创建子类对象时,先调用父类的构造方法,再调用子类的构造方法
 *               原因是系统自动在子类的构造函数的第一行中加了一条语句:super()
 *               super()默认调用父类无参的构造函数
 *               
 *               注意:当父类不存在无参构造函数时,必须在子类构造函数的第一行手动加入super语句,调用父类的某个构造方法
 */
class Fu {
	int age;
	String name;

	Fu() {
		System.out.println("fu");
	}

	public Fu(int age, String name) {
		this.age = age;
		this.name = name;
	}
}

class Zi extends Fu {
	double weight;// 子类特有的属性

	Zi() {
		System.out.println("zi");
	}

	public Zi(int age, String name, double weight) {
		super(age, name);// 调用父类的构造函数
		this.weight = weight;
	}

	// 只有年龄和姓名的构造函数
	public Zi(int age, String name) {
		super(age, name);
	}

}

    public class Demo5 {
	public static void main(String[] args) {
		Zi zi = new Zi(12, "xiao");
	}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值