JavaBase05

继承

为什么要有继承或者说继承的好处?
当我们要为某一业务新增新的功能或者特性时,既不能删除原有的功能,也要增加新的业务,按照正常的思维逻辑需要重写代码,这样既增加了代码的工作量负担,又给业务带来了不安全性。如果我们可以用继承来保留原先的功能前提下,来增加新的业务功能,这样就可以解决先前所面对的问题。
注意事项
1.方法覆盖:存在于继承关系中的一种语法。
(1)只存在于子类,当子类方法和父类方法及其声明方式相同时相同时,子类方法覆盖父类方法。
(2)方法的访问修饰符只能是父类的大于等于子类(子类是public父类必须是public)
2.super关键字:是在子类使用的关键字,是父类的引用,用来调用父类的方法或者变量。super关键字也能避免父类的方法被覆盖。
3.java只能单继承:也就是说一个子类只能有一个父类,一个父类可以有多个子类。
4.final关键字:final修饰的类不能有子类,也就是说被final修饰的类不能被继承。
5.只要给子类创建对象时,那么子类构造器会调用父类构造器。

public class Dog {
	public String name;
	public Dog(){
		System.out.println("这是父类构造器");
		name="阿黄";
	}
	public void eat(){
		System.out.println("狗在吃饭");
	}
	public void sleep(){
		System.out.println("狗在睡觉");
	}
	protected void run(){
		System.out.println("狗在奔跑");
	}
}

public class NewDog extends Dog{
	public String color;
	public NewDog(){
		System.out.println("这是子类构造器");
		color="黄色";
	}
	protected void run(){
		super.eat();//super关键字
		System.out.println("狗在狂奔");
	}
}
public class Test {
	public static void main(String[] args) {
		NewDog dog=new NewDog();
		dog.eat();
		dog.sleep();
		dog.run();//方法覆盖
		System.out.println(dog.color);
		System.out.println(dog.name);
	}
}

这是父类构造器
这是子类构造器
狗在吃饭
狗在睡觉
狗在吃饭
狗在狂奔
黄色
阿黄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值