JAVA继承实例继承是面向对象编程技术java继承代码大全的一块基石java继承代码大全,因为它允许创建分等级层次的类 。运用继承java继承代码大全,你能够创建一个通用类java继承代码大全,它定义java继承代码大全了一系列相关项目的一般特性 。该类可以被更具体的类继承,每个具体的类都增加一些自己特有的东西 。在Java 术语学中,被继承的类叫超类(superclass ),继承超类的类叫子类(subclass ) 。因此,子类是超类的一个专门用途的版本,它继承了超类定义的所有实例变量和方法,并且为它自己增添了独特的元素 。
继承一个类,只要用extends 关键字把一个类的定义合并到另一个中就可以了 。为了理解怎样继承,让我们从简短的程序开始 。下面的例子创建了一个超类A和一个名为B的子类 。注意怎样用关键字extends 来创建A的一个子类 。
// A simple example of inheritance.
// Create a superclass.
class A {
int i, j;
void showij() {
System.out.println("i and j: "i" "j);
}
}
class B extends A {
int k;
void showk() {
System.out.println("k: "k);
}
void sum() {
System.out.println("i j k: "(i j k));
}
}
class SimpleInheritance {
public static void main(String args[]) {
A superOb = new A();
B subOb = new B();
System.out.println("Contents of superOb: ");
superOb.showij();
System.out.println();
subOb.i = 7;
subOb.j = 8;
subOb.k = 9;
System.out.println("Contents of subOb: ");
subOb.showij();
subOb.showk();
System.out.println();
System.out.println("Sum of i, j and k in subOb:");
subOb.sum();
}
}
该程序的输出如下:
Contents of superOb:
i and j: 10 20
Contents of subOb:
i and j: 7 8
k: 9
Sum of i, j and k in subOb:
i j k: 24
像你所看到的,子类B包括它的超类A中的所有成员 。这是为什么subOb 可以获取i和j 以及调用showij( ) 方法的原因 。同样,sum( ) 内部,i和j可以被直接引用,就像它们是B的一部分 。
尽管A是B的超类 , 它也是一个完全独立的类 。作为一个子类的超类并不意味着超类不能被自己使用 。而且,一个子类可以是另一个类的超类 。声明一个继承超类的类的通常形式如下:
class subclass-name extends superclass-name {
// body of class
}
你只能给你所创建的每个子类定义一个超类 。Java 不支持多超类的继承(这与C不同,在C中 , 你可以继承多个基础类) 。你可以按照规定创建一个继承的层次 。该层次中,一个子类成为另一个子类的超类 。然而,没有类可以成为它自己的超类 。
成员的访问和继承
尽管子类包括超类的所有成员,它不能访问超类中被声明成private 的成员 。例如,考虑下面简单的类层次结构:
/* In a class hierarchy, private members remain private to their class.
This program contains an error and will not compile.
*/
// Create a superclass.
class A {
int i;
private int j; // private to A
void setij(int x, int y) {
i = x; j = y;
}
}
// A"s j is not accessible here.
class B extends A {
int total; void sum() {
total = ij; // ERROR, j is not accessible here
}
}
class Access {
public static void main(String args[]) {
B subOb = new B();
subOb.setij(10, 12);
subOb.sum();
System.out.println("Total is "subOb.total);
}
}
该程序不会编译,因为B中sum( ) 方法内部对j的引用是不合法的 。既然j被声明成private , 它只能被它自己类中的其他成员访问 。子类没权访问它 。
注意:一个被定义成private 的类成员为此类私有,它不能被该类外的所有代码访问 , 包括子类 。
更实际的例子
让我们看一个更实际的例子,该例子有助于阐述继承的作用 。新的类将包含一个盒子的宽度、高度、深度 。
// This program uses inheritance to extend Box.
class Box {
double width; double height; double depth;
// construct clone of an object
Box(Box ob) { // pass object to constructor
width = ob.width;
height = ob.height;
depth = ob.depth;
}
// constructor used when all dimensions specified
Box(double w, double h, double d) {
width = w;
height = h;
depth = d;
}
// constructor used when no dimensions specified
Box() {
width = -1; // use -1 to indicate
height = -1; // an uninitialized
depth = -1; // box
}
// constructor used when cube is created
Box(double len) {
width = height = depth = len;
}
// compute and return volume double
volume() {
return width * height * depth;
}
}
BoxWeight extends Box {
double weight; // weight of box
// constructor for BoxWeight
BoxWeight(double w, double h, double d, double m) {
width = w;
height = h;
depth = d;
weight = m;
}
}
class DemoBoxWeight {
public static void main(String args[]) {
BoxWeight mybox1 = new BoxWeight(10, 20, 15, 34.3);
BoxWeight mybox2 = new BoxWeight(2, 3, 4, 0.076);
double vol;
vol = mybox1.volume();
System.out.println("Volume of mybox1 is "vol);
System.out.println("Weight of mybox1 is "mybox1.weight);
System.out.println();
vol = mybox2.volume();
System.out.println("Volume of mybox2 is "vol);
System.out.println("Weight of mybox2 is "mybox2.weight);
}
}
该程序的输出显示如下:
Volume of mybox1 is 3000.0
Weight of mybox1 is 34.3
Volume of mybox2 is 24.0
Weight of mybox2 is 0.076
BoxWeight 继承了Box 的所有特征并为自己增添了一个weight 成员 。没有必要让BoxWeight 重新创建Box 中的所有特征 。为满足需要我们只要扩展Box就可以了 。
继承的一个主要优势在于一旦你已经创建了一个超类,而该超类定义了适用于一组对象的属性 , 它可用来创建任何数量的说明更多细节的子类 。每一个子类能够正好制作它自己的分类 。例如 , 下面的类继承了Box并增加了一个颜色属性:
// Here, Box is extended to include color.
class ColorBox extends Box {
int color; // color of box
ColorBox(double w, double h, double d, int c) {
width = w;
height = h;
depth = d;
color = c;
}
}
记?。坏┠阋丫唇艘桓龆ㄒ辶硕韵笠话闶粜缘某?,该超类可以被继承以生成特殊用途的类 。每一个子类只增添它自己独特的属性 。这是继承的本质 。
超类变量可以引用子类对象
超类的一个引用变量可以被任何从该超类派生的子类的引用赋值 。你将发现继承的这个方面在很多条件下是很有用的 。例如,考虑下面的程序:
class RefDemo {
public static void main(String args[]) {
BoxWeight weightbox = new BoxWeight(3, 5, 7, 8.37);
Box plainbox = new Box(); double vol;
vol = weightbox.volume();
System.out.println("Volume of weightbox is "vol);
System.out.println("Weight of weightbox is "weightbox.weight);
System.out.println();
// assign BoxWeight reference to Box reference
plainbox = weightbox;
vol = plainbox.volume(); // OK, volume() defined in Box
System.out.println("Volume of plainbox is "vol);
/* The following statement is invalid because plainbox does not define a weight member. */
// System.out.println("Weight of plainbox is "plainbox.weight);
}
}
这里,weightbox 是BoxWeight 对象的一个引用 , plainbox 是Box对象的一个引用 。既然BoxWeight 是Box的一个子类 , 允许用一个weightbox 对象的引用给plainbox 赋值 。
当一个子类对象的引用被赋给一个超类引用变量时 , 你只能访问超类定义的对象的那一部分 。这是为什么plainbox 不能访问weight 的原因 , 甚至是它引用了一个BoxWeight 对象也不行 。仔细想一想,这是有道理的,因为超类不知道子类增加的属性 。这就是本程序中的最后一行被注释掉的原因 。Box的引用访问weight 域是不可能的,因为它没有定义 。
用JAVA编写继承与接口联合的代码是什么?interface CanSwim {
void swim();
}
interface CanFight {
void fight();
}
interface CanFly {
void fly();
}
class ActionCharacter {
void fight() {
System.out.println("this is ActionCharacter");
}
}
class Hero extends ActionCharacter implements CanSwim, CanFly {
@Override
public void swim() {
}
@Override
public void fly() {
}
}
public class Adventure {
public static void t(CanFight x) {
x.fight();
}
public static void u(CanSwim x) {
x.swim();
}
public static void v(CanFly x) {
x.fly();
}
public static void w(ActionCharacter x) {
x.fight();
}
public static void main(String[] args) {
Hero h = new Hero();
u(h);
v(h);
w(h);
}
}
教我写个继承类的小代码 javaClass instrument{
【java继承代码大全 java继承的代码】 String name;//乐器的名称
String playStyle; //弹奏风格
public void instruPlay(name,playStyle){//弹奏方法
System.out.println("这个乐器是" name ",弹奏的风格是" playStyle);
}
}
Class piano extend instrument{
String feeling="钢琴的声音好听?。?;//继承了instrument类后,变量就不用再写了,但可以增加一个变量
public void instruPlay("piano","轻音乐"){
System.out.println("这个乐器是" name ",弹奏的风格是" playStyle feeling);
}
}
Class violin extend instrument{
String feeling="小提琴的声音也不错?。?;
public void instruPlay("violin","melody is happy^_^"){
System.out.println("这个乐器是" name ",弹奏的风格是" playStyle feeling);
}
}
很久没些java代码了,你测试一下看能不能跑起来,如有问题再问我吧 。
教我写个继承的代码吧 不胜感激 java首先是动物 父类
package com.xx.test;
/**
* 抽象类动物基类
*/
public abstract class Animal {
/**
* 特性1 吃
*/
public abstract void eat();
/**
* 特性2 睡觉
*/
public abstract void sleep();
}
老虎类 继承 动物
package com.xx.test;
/**
* 老虎 , 属于动物 继承父类动物
*
*/
public class Tiger extends Animal{
/**
* 实现老虎特有的吃方法
*/
@Override
public void eat() {
System.out.println("I'm tiger,I like meat");
}
@Override
public void sleep() {
System.out.println("I'm tiger,I'm sleeping!");
}
}
兔子类 继承动物
package com.xx.test;
/**
*
*兔子属于动物 继承动物父类
*/
public class Rabbit extends Animal{
@Override
public void eat() {
System.out.println("I'M rabbit,i like grass");
}
@Override
public void sleep() {
System.out.println("I'm rabbit,i'm sleeping!");
}
}
测试类
package com.xx.test;
public class Test {
public static void main(String[] args) {
//以动物形态创建一个老虎
Animal tiger=new Tiger();
//以动物形态创建一只兔子
Animal rabbit=new Rabbit();
//老虎吃
tiger.eat();
//老虎睡
tiger.sleep();
//兔子吃
rabbit.eat();
//兔子睡
rabbit.sleep();
}
}
这是一个java的多态形式需要你自己想清楚才能理解
java继承代码加讲解谁能告诉我啊 谢了继承的理解非常简单java继承代码大全 , 就是父亲的可以继承的东西java继承代码大全,子类在不声明的情况下都会拥有
这个不像现实的继承是可以选择的java继承代码大全 , java的继承java继承代码大全,不论优缺点
继承的作用,就是描述不同类 , 不同对象之间的联系
在java中,继承只是个开始 , 继承是为java继承代码大全了多态
java继承代码大全的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java继承的代码、java继承代码大全的信息别忘了在本站进行查找喔 。
推荐阅读
- 直播贴纸素材,直播贴纸素材大全
- 八代i3核芯显卡怎么样,八代i3处理器怎么样
- 荒野行动游戏教学狙击射击,荒野行动狙击手
- html5前沿案例,基于html5的web前端设计与开发
- linux写文件命令行 linux命令行写入文件
- linux中如何挂载命令,Linux挂载光盘命令
- 游戏制作模拟器,网游制作模拟器
- word怎么制作个人简历,word个人简历模板免费
- php如何修改表中数据 php如何修改表中数据的大小