Java--继承概述

1、继承

1.1继承的概述

在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如老虎和狮子都属于大型猫科动物,程序中便可以描述为老虎和狮子继承自大型猫科动物,同理,孟加拉虎和东北虎继承自虎类,而刚果狮和亚洲狮继承自狮类。
那么这样写有什么好处呢?

  • 提高了代码的重要性,子类继承了父类的所有方法和属性,所以子类不用在重复定义。
  • 提高了代码的扩展性,子类可以写自己独特的属性和方法,在父类的基础上进行扩展。

1.2、继承的使用

父类格式

public class 父类名称{
    //.....
}

子类格式

public class 子类名称 extends 父类名称{
    //.....
}

注意:

  • 子类继承了父类的所有属性和方法,只不过只能调用父类的非private属性和方法
  • Java中的继承只支持单继承,意思就是一个子类只能继承一个父类,单允许多层继承
    下面我们通过Vehicle(车)类、Car(小汽车)类、Sedan(小轿车)类来查看上述继承的特点
/*
 * *创建Vehicle作为父类
 */

public class Vehicle {

public int wheelNum; //车轮数量

//注意,这个方法是私有的

private void flameout() {

System. out. println("车辆熄火");
}
public void launch() {
	System. out. println("启动车辆");

	class Car extends Vehicle {

	public double carHeight; //车辆高度

	public void run() {

	System. out. println("启动快,跑起来嗖嗖的");
	}
	public static void main(Stringl ] args) {
		Car car = new Car();
	

	//可以正常调用父类对象中public方法
	car. launch();

	//这里代码将会报错,父类的私有方法子类无法调用
	car. flameout();
    }
}

多层继承

/*
 * *定义小轿车Sedan,继承Car
 */

class Sedan extends Car {

     public void manned() {

         System. out. println("可载人..");
         }

    public static void main(String[] args) {

        Sedan sedan = new Sedan();

        //Car继承了Vehicle,Sedan又继承Car,

       //也可以使用Vehicle中的方法,这个就是多层继承
       sedan. launch();

 }
}

2、重写

2.1、重写的概念

在继承关系中,子类会自动继承父类中定义的方法,但有时子类中需要对继承的方法进行一些修改, 即对父类的方法进行重写。

方法的重写又称为方法的覆盖,在继承中还有一种特殊的重写方式, 即子类与父类的成员方法返回值、方法名称、参数类型及个数完全相同,唯不同的是方法实现内容, 这种特殊重写方式被称为重构。

2.2、重写的使用

public class Animal {

		//定义动物叫的方法

		public void shout() {

		System. out. println("动物发出叫声");
		}
	}

		class Dog extends Animal {

		//定义狗是怎么叫的

		public void shout() {

		System. out. println("汪汪汪. .. .");

		}

		class Sample {

		public static void main(String [] args) {
			Dog dog = new Dog();
		    dog. shout();

		}

}
		

通过示例可以看到,我们定义的Dog类继承自Animal 类。在子类Dog中定义了一个shout( )方法对父类方法进行重写。从运行结果可以看出,在调用Dog类对象的shout()方法时,只会调用子类重写的该方法,并不会调用父类的shout( )方法。

注意:

  • 子类重写父类的方法时,不能使用比父类中被重写的方法更严格的访问权限。重写方法和被重写的方法必须具有相同的方法名、相同的参数列表和相同的返回值类型,重写方法的访问修饰符必须大于被重写方法的访问修饰符,否则就不能被称为方法的重写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值