JAVA面向对象程序设计学习(五)——继承、接口

本文详细介绍了Java中的继承、接口的概念和用法。包括类的继承、子类与父类的关系、方法重构、super关键字的使用、final关键字的作用、抽象类的定义与特性,以及接口的定义、实现和接口间的继承。同时讨论了向上转型和向下转型的原理。
摘要由CSDN通过智能技术生成

前言

在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新 类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方 法。在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。

类的继承
父类能被多个子类继承,而子类只能继承一个父类。
在这里插入图片描述在这里插入图片描述
可以多层继承
在这里插入图片描述
方法重构
在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进 行一些修改,即对父类的方法进行重写。需要注意的是,在子类中重写的方法需要和父类 被重写的方法具有相同的方法名、参数列表以及返回值类型。

super关键字
当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这个问题,在Java中专 门提供了一个super关键字用于访问父类的成员。例如访问父类的成员变量、成员方法和构造方法。接 下来分两种情况来学习一下super关键字的具体用法。
1.使用super关键字访问父类的成员变量和成员方法。
在这里插入图片描述
2.使用super关键字访问父类的构造方法。
在这里插入图片描述
final关键字
final关键字可用于修饰类、变量和方法,它有“无法改变”或者“最终”的含义,因此被 final修饰的类、变量和方法将具有以下特性:
1.final修饰的类不能被继承。
2.final修饰的方法不能被子类重写。
3.final修饰的变量(成员变量和局部变量)是常量,只能赋值一次。

抽象类
Java允许在定义方法时不写方法体,不包含方法体的方法为抽象方法,抽 象方法必须使用abstract关键字来修饰。在这里插入图片描述
1.当一个类中包含了抽象方法,该类必须使用abstract关键字来修饰,使用abstract关键字修饰的类 为抽象类。
2.在定义抽象类时需要注意,包含抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽象方法,只需使用abstract关键字来修饰即可。
3.抽象类是不可以被实例化的,因为抽象类 中有可能包含抽象方法,抽象方法是没有方法体的,不可以被调用。如果想调用抽象类中定义 的方法,则需要创建一个子类,在子类中将抽象类中的抽象方法进行实现。

练习
在这里插入图片描述
以下是代码:

package Matmul;


abstract class Animals {
   
	protected String name;//如果用private,子类中就访问不到该变量
	protected int age;			
	 public Animals(){
   
	}
	 public Animals(String name,int age){
   
		this.name = name;
		this.age = age;
	}
	abstract void cry();
	public void speak() {
   
		System.out.println("我是:"+name+",我年龄是:"+age);
	}
}

class Dog extends Animals{
   
	protected float age;//名称相同,隐藏了父类中的age变量
	protected String color;
	
	public Dog() {
   }
	public Dog(String name,int age,String color){
   
		super();//super调用父类的构造方法时,super需要写在构造方法中的第一行
		this.name = name;
		this.age = age;
		this.color = color;
	}
	//abstract类中的抽象方法必须在子类中被重写
	public void cry() {
   
		System.out.println("wowwowwow");
	}
	public void speak() {
   
		System.out.println("我颜色是"+color+"我重写了Animals的方法"+"我把age:"+super.age+"变为了"+age);
		//使用super调用了被隐藏的int 型age
	}
	/*public String setname(String name) {
		this.name = name;
		return name;
	}*/
}

class Muyang_Dog extends Dog
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值