Java之类的继承
说起来Java的类,不得不说以下几个方面:继承、转型、重写、多态和接口。
今天来说一说继承,转型和重写几个方面:
继承(extends)即子类继承父类,就好比玻璃杯、保温杯等子类继承了杯子这个父类,子类具有父类的属性和方法。有一点要特别注意,Java的类是单根继承!所谓单根继承,即每个子类只能有一个父类。同时继承也实现了父类的复用性。
之后来介绍以下,访问修饰符(限定符)即分为以下四种情况(在Java中):public; private; protected; 缺省(无限定符); 缺省以及public情况下都可以跨包(Package)访问,其他两种则会收到保护,private的属性或函数,仅可以在当前类中进行调用。
自动转换及强制转换
以student和person来举例子。
public class Student extends Person{
Student stu = new Student;//new表示开辟空间 以Student为对象,本身表示为Student
Person stu2 = new Student;//本来stu2是个学生,但是此处是表现为Person,即自动转换
Student stu3 = (Student)stu2;//表示将stu2本身的属性再表现出来,以stu3来命名,即强制转换
}
但是,我们要注意,强制转换的对象只有自动转化过的对象才可以!!!这里再举一个完整的例子,包含抽象类(abstract)以及接口(interface),会在以后进行说明~
Person.java
public interface Person {
//接口中属性默认为 public static final ,也只能如此
public static final int num = 1000;
//接口中方法默认为public abstract,也只能如此
public abstract void eat();
public abstract void rest();
}
Student.java
package com.sgf.Extends20190302;
public class Students implements Person{
public String name;
//所有学生都有学习的方法
public void study(){
System.out.println("Student类中学习方法,学生名字是" + name);
}
public void eat(){
System.out.println("吃吃吃");
}
public void rest(){
System.out.println("睡睡睡");
}
//设定学生的名字
public void setName(String name){
this.name = name;
}
}
UNStudent.java
package com.sgf.Extends20190302;
public class UNStudents extends Students{//子类继承父类
public static void main(String[] agrs ){
//创建大学生类的对象 学生uns 继承+特有
UNStudents uns = new UNStudents();
//调用方法 这些方法是从父类继承来的
uns.setName("我是大学生");
uns.study();
//大学生类特有
uns.cet4();
//子类学生stu 自动转换父类 ;
Students stu = new UNStudents();//子类->父类 自动转型
stu.setName("我是大二的");
stu.study();
//不可用子类特有方法
// stu.cet4();
//将父类对象强制转型为子类
//父类学生stud 强制转换为子类
UNStudents stud = (UNStudents)stu;
//强制转换后可以调用子对象方法
stud.cet4();
//子类将父类方法重写 学生stu2
UNStudents stu2 = new UNStudents();
//方法
stu2.setName("ABC");
stu2.study();
//Person
Person p1 = new Students();
p1.eat();
p1.rest();
}
public void cet4(){
System.out.println("大学生需要考四级");
}
//重写父类方法
public void study(){
System.out.println(name + "要大学毕业了");
}
}
初入Java,恳请各位多多提点,谢谢!
Java之类的继承的更多相关文章
- 关于Java中的继承和组合的一个错误使用的例子
[TOC] 关于Java中的继承和组合的一个错误使用的例子 相信绝大多数人都比较熟悉Java中的「继承」和「组合」这两个东西,本篇文章就主要就这两个话题谈论一下.如果我某些地方写的不对,或者比较幼稚, ...
- java中的继承与oc中的继承的区别
为什么要使用继承? 继承的好处: (1)抽取出了重复的代码,使代码更加灵活 (2)建立了类和类之间的联系 继承的缺点: 耦合性太强 OC中的继承 1.OC中不允许子类和父类拥有相同名称的成员变量名:( ...
- JAVA封装、继承
封装 1.概念: 将类的某些信息隐藏在类的内部,不允许外部程序访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: a.只能通过规定的方法访问数据 b.隐藏类的实例细节,方便修改和实 ...
- <Java中的继承和组合之间的联系和区别>
//Java中的继承和组合之间的联系和区别 //本例是继承 class Animal { private void beat() { System.out.println("心胀跳动...& ...
- Java中的继承
我们在以前的学习中,我们会了C#中的继承,今天我们来了解了解Java中的继承,其实都大同小异啦! 1.语法 修饰符 SubClass extends SuperClass(){ //类定义部分 } e ...
- Java面向对象的继承
继承也是面向对象的又一重要特性,继承是类于类的一种关系,通俗来说狗属于动物类,那么狗这个类就继承了动物类 java中的继承是单继承的,一个类只能继承与一个父类 子类继承父类之后,子类就拥有了父类的所有 ...
- java类的继承
继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(重写)的方式,产生一个新的类型.继承是面向对 象的三个基本特征--封装.继承.多态的其中之一,我们在使用java时编写的每一个类都是 ...
- 对Java不能多继承,只能单继承,却可以实现多个接口的理解
1.java与C++的不同点在于多继承. Java:不能多继承,只能单继承,但可以实现多个接口 C++:可以实现多继承.例如: class A extends B implements C,D,E { ...
- extends:类似于java中的继承特征,extends="struts-default"
extends:类似于java中的继承特征,extends="struts-default"就是继承struts-default.xml,它里面定义了许多跳转类型.拦截器等一些常用 ...
- JAVA中的继承和覆盖
java里面的继承是子类继承父类的一些方法和属性(除private属性和方法之外):对于父类的私有属性和方法子类是没有继承的.可是要想子类也能訪问到父类的私有属性,必须给私有属性以外界訪问的方法接口. ...
随机推荐
- SQL函数 Convert,dateadd
1.SQL中CONVERT转化函数的用法 格式:CONVERT(data_type,expression[,style])说明:此样式一般在时间类型(datetime,smalldatetime)与字 ...
- 最简单的Android项目(添加jar文件)
如果项目需要引用第三方jar文件,需要对编译命令做一些改动. 首先在项目根目录创建libs目录,将需要的jar文件拷贝到里面. 编译过程中有两步需要改动. 编译java源文件时,需要添加class p ...
- linux批量设置部分文件与文件夹权限
批量设置web目录下文件.文件夹名为sitemap.xml.sitemap 属性为777 cd /www/web find ./ -name 'sitemap' -exec chmod -R 77 ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(1)|开篇]
今天我们来开一个新系列. 从零学习rustlang. 简单介绍下rustlang: Rust 是一门系统级编程语言,被设计为保证内存和线程安全,防止段错误产生.作为系统级编程语言,它的基本理念是 “零 ...
- 一个web应用的诞生(3)
经过上一章的内容,其实就页面层来说已结可以很轻松的实现功能了,但是很明显美观上还有很大的欠缺,现在有一些很好的前端css框架,如AmazeUI,腾讯的WeUI等等,这里推荐一个和flask集成很好的b ...
- 一个web应用的诞生(5)
下面把角色分为两种,普通用户和管理员用户,至少对于普通用户来说,直接修改DB是不可取的,要有用户注册的功能,下面就开始进行用户注册的开发. 用户表 首先要想好用户注册的时候需要提供什么信息:用户名.密 ...
- Spring Data JPA基本了解
前言 自 JPA 伴随 Java EE 5 发布以来,受到了各大厂商及开源社区的追捧,各种商用的和开源的 JPA 框架如雨后春笋般出现,为开发者提供了丰富的选择.它一改之前 EJB 2.x 中实体 B ...
- 【NOIP2014模拟8.17】Magical GCD
题目 对于一个由正整数组成的序列, Magical GCD 是指一个区间的长度乘以该区间内所有数字的最大公约数.给你一个序列,求出这个序列最大的 Magical GCD. 分析 根据暴力的思想, \( ...
- NOIP2016提高A组五校联考1总结
第一题二分,在比赛上明明想到的方法,结果考虑的时候似乎漏了什么,被否决掉了. 只打了个水法,10分. 第二题,最长不上升子序列,原题,类似的题目做过两道,直接搞定. 第三题,一开始想了一种通过在树上打 ...
- 【NOIP2016提高A组模拟8.15】Throw
题目 分析 首先对于一个状态(a,b,c),假定a<=b<=c: 现在考虑一下这个状态,的转移方案: \[1,中间向两边跳(a,b,c)-->(a*2-b,a,c).(a,b,c)- ...