IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java继承与多态 -> 正文阅读

[Java知识库]java继承与多态

java继承与多态


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是继承?

如果B类具有A类的全部属性和方法,而且又具有自己特殊的某些属性和方法,则把类A称作一般类。把类B称作特殊类。这种一般与特殊的结构,可以用继承所表达和实现,继承1使得某类对象可以继承另外一类对象的属性和方法。

二、继承的实现

说明:
修饰符同类的声明,【public省略】,或者【final】,或者都不选。
子类名必须符合命名规则
extends是关键字
父类,可以是自定义的类,也可以是系统类库中的类,如果省略父类,其默认的父类是java.lang.Object类
子类可以添加新的成员变量和成员方法,也可以隐藏父类的成员变量或者覆盖父类中的成员方法
Java只支持单继承
类之间的继承具有传递性。
Java中,类Java.lang.Object是一切父类或根类,所有类都是通过直接或间接地继承java.lang.Object得到的。因此,往往把Object称为万类之源。
Java不支持多重继承,一个子类只能继承一个父类,父类包括所有直接或间接继承它地类,类的继承可以传递。
Shape.java文件

package first;

public class Shape {
		String type; //定义类别;
		public void setType(String type) {
			this.type=type; //成员方法 设置其图形类型
		}
		public String getType() {
			return type;
		}
}

Circle.java文件

package first;

public class Circle extends  Shape {
			double radius; //定义成员变量
		public double  getRadius() { //定义自己的成员方法
			return radius;
		}
		public void setRadius(double radius) {
			this.radius=radius;
		}
		public  double getArea() {  //计算圆的面积
			double area=Math.PI*radius*radius;
			return area;
		}
		public double getPerimeter() {
			return 2*Math.PI*radius;
		}
		public static void main(String[] args) {
			Circle myshape= new Circle();
			myshape.setType("圆");
			myshape.setRadius(5.2);
			System.out.println("myshape的类别是:"+myshape.getType());
			double area=myshape.getArea();
			System.out.println("myshape的面积是:"+area);
			System.out.println("myshape的周长是:"+myshape.getPerimeter());
					
		}
}

1.继承的规则

Java中,当声明了直接子类和直接父类的继承关系后,直接子类继承直接父类。除构造方法外,子类可继承父类所有的成员方法变量和成员方法,但是否能够直接访问,还要看其访问修饰符的控制范围。

2.属性的继承

  1. 属性的继承和扩展
    根据继承规则,子类可以继承父类所有的属性,还可以增加自己的成员变量。

3.属性的隐藏

属性隐藏是指子类重新定义一个从父类哪里继承来的与变量完全相同的变量。所谓隐藏,是指子类拥有了两个相同名字的成员变量。一个继承自父类,另一个是自己定义的成员变量。

属性代码隐藏测试 代码如下(示例):

Person.java 文件

package first;

public class Person {
		String id;
		String name;
		String address="111";
		public Person() {
			   
		}
		public void showName() {
			System.out.println(name); //输出的是父类中的name
		}
	
		
}

Student.java文件

package first;

public class Student extends Person{
	String address="长沙";
	String school="长沙理工";
	public Student() {
		
	}
	public void showInfo() {
		showName();//调用父类的方法;
		System.out.println("Student:"+address+" "+"Student:"+school);
		//使用的是子类的adress;
	}
	public static void main(String[] args) {
		Student stu= new Student();
		stu.showInfo();
	}
} 

在这里插入图片描述

三、方法的继承

1.方法的继承和扩展

子类可以继承父类的成员方法,还可以增加自己的成员方法,子类对象可以使用从父类中继承过来的方法。

2.方法的重写

方法的重写是指子类重新定义从父类继承来的方法,而使子类具有自己的行为,满足自己的需要。
方法重写注意以下几个问题:
子类中重写的方法应与父类中的被覆盖的方法有完全相同的方法名称。参数列表,返回值类型 但执行的方法体不同
重写过后的方法不能比被重写的方法有更严格的访问限制(访问控制权按照严格的顺序是:privaate default protected public)即子类比父类扩大原则。
可以部分重写父类方法 ,在原方法的基础上添加新的功能,即在子类的覆盖方法的第一条语句位置添加一条语句,super()原方法名()。
不能重写父类的final()方法,final方法定义的目的是为了防止被重写。
关于static 修饰符 子类和父类必须一致,都有或者都没有
一般有以下几种情况下使用方法重写
子类中实现与父类相同的功能,但是算法不同
在名字相同的方法中,子类的操作要比父类多
在子类中取消从父类中继承的方法,这种情况下,只需要重写不需要的父类方法,将方法体设为空。

思考方法重载和重写的区别?
当子类重写父类方法时,由于同名方法分别属于父类和子类,所以需要区分调用了哪个类中的方法,一般情况下,只要在方法前面使用不同类的对象或者不同类名即可,如果直接调用父类的方法可以用super关键字。


  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 16:57:32  更:2021-10-03 17:00:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:20:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码