JAVA 7 继承

继承

 

1,提高代码复用性

2,让类与类之间产生关系,有了关系,才会有多态的特性

3,必须是类与类之间有所属关系才可以继承。看父类的所有方法属性在子类中是否都必须具备。

Java只支持单继承,不支持多继承,多继承容易带来安全隐患。

使用库的时候:

查阅父类的方法,使用子类创建对象,因为父类可能不能创建对象,子类的功能最全。

class Zx

{

public static void main(String []arr)

{

Zi a = new Zi();

System.out.println(a.num); //会打印5

a.show();//会打印4

}

}

class Fu

{

int num  = 4;

void show()

{

System.out.println(4);    //super 换成 this 和空 都会打印4

}

}

class Zi extends Fu

{

int num=5;

void show()

{

System.out.println(4);    //super 换成 this 和空 都会打印4

}

}

super:代表父类对象的引用

如果子类中出现非私有的同名成员变量时,子类要访问本类中的变量用this.  子类要访问父类中的同名变量,用super

函数的覆盖/重写

当父子类中有同名函数时,调用子类对象的函数,会执行子类的函数,父类的函数被覆盖。

以下程序会打印4

class Zx

{

public static void main(String []arr)

{

Zi a = new Zi();

a.show();

}

}

class Fu

{

int num  = 4;

void show()

{

System.out.println(5);

}

}

class Zi extends Fu

{

int num=5;

void show()

{

System.out.println(4);

}

}

final:

最终的类不可以被继承,为了避免被子类覆盖功能。

3,被final修饰的方法不可以被覆盖

4,被final修饰的变量是一个常量只能赋值一次。

接口和抽象类没懂,找本书看看

abstract:抽像

 

1,抽象方法一定定义在抽象类中

2,抽象方法和抽象类被abstract修饰

3,抽象类不可以用new创建对象。

3,抽象类中的方法要被使用,抽象父类必须由子类复写所有抽象方法后后,建立对象使用

作用不懂?

抽象就是有点模糊的意思,还没确定好的意思。

比如我想买件衣服,我只是想买衣服而已,但还没确定是买白色的衣服还是蓝色的衣服,也还没确定是要买短袖还是长袖的衣服。

用到java上,就比方,我要定义一个方法和类。但还没确定怎么去实现它的具体一点的子方法,那我就可以用抽象类或接口。

接口:

初期理解:可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以提供接口的形式来表示

interface

定义格式特点:

1,接口中常见定义:常量,抽象方法。

2,就看中成员都有固定修饰符。

常量:public static final int a;//int a 也可以,会自动给补上,但是最好要写

方法:public abstract a(){};//同上

接口中的成员都是public的

例如:

class Zx

{

public static void main(String []arr)

{

}

}

interface Inter

{

public static final int NUM = 3;

public abstract void show();

}

class Test implements Inter

{

public void show(){}

}

 

 

 

 

时间: 2024-11-09 05:17:59

JAVA 7 继承的相关文章

Java的继承与多态

Java的继承与多态对于提高开发效率,减少开发量,是非常有帮助的,也便于代码维护.下面是根据书上讲的,我又做了改进的例子. 假设需求: 公司需要对所有人员进行管理,所有人员分为普通员工和经理人,他们的头衔.工资.生日等信息都是不一样的,但是不能开发两套系统分别进行管理,而是要一套系统完成对所有人的管理. 设计一个员工类,这是父类,定义如下: package com.myHelloWorld; import java.text.ParseException; import java.text.Si

java基础-继承

一个由其他类继承的类叫子类(也叫继承类,扩展类等),该类继承的类叫父类或超类.除了Object类意外,所有的类都有切仅有一个父类,如果一个类没有用extends关键词声明父类,则该类隐含继承Object类,因此如果一个类继承另外一个父类,而该父类可能又是继承的另外一个类,最终的起点在Object类. java中继承的概念简单而强大,当你需要定义的一个类中的许多代码已经在另外一个类中存在时,我们就可以选择定义时继承该类,这样免去许多书写和调试的麻烦,子类能够继承父类的字段,方法和嵌套类,即类成员,

java类继承总结一 父类类型与子类类型之间的转化问题(转)

java类继承总结一 父类类型与子类类型之间的转化问题 本文将通过一个实例描述父类类型与子类类型之间的转化问题,这个很特殊的问题常常会导致一些潜在的危险,让你整整一个晚上都在调试程序以解决一个让人抓狂的java.lang.ArrayStoreException异常. 1. 子类数组的引用可以装换为超类数组的引用 2. 子类的引用child可以转换为父类的引用parent(这里假设parent是父类对象,child是子类对象),但却不可以通过 parent调用child的特有方法 class Em

关于Java中继承和接口的理解

关于Java中继承和接口的理解 Java语言中,为了实现代码重用,设计了继承这一机制,但是,其设计成单继承,这样设计是有原因的,如下图: Figure1:deadly diamond of death 此图问题称为菱形问题(diamond problem),就是说,当A的子类B和C同时实现了A中的方法,则同时继承了B和C的子类D在调用该方法时会出现混乱,无法得知该调用哪一个方法. 既然不能实现多继承,我们就会考虑把很多方法就写在父类里,或者继承抽象类,实现其方法,但是,这样会导致一个问题,比如说

Java面向对象㈡ -- 继承与多态

Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆盖的概念.覆盖被用来支持多态.实际开发中Java通常继承于抽象类,实现于接口.如果不希望一个类被继承,或者一个方法被覆盖,或者一个成员变量被改变,就可以用final修饰.这里只说明两个问题:1,重载和覆盖的区别重载和覆盖的区别:重载发生在同一个类之中,重载要求函数名相同,参数不同(参数个数||参数类

Java多态-继承与清理

通过组合和继承方法来创建新类时,永远不必担心对象的清理问题,子对象通常会留给垃圾回收器进行处理.如果确是遇到清理问题,那必须用心为新的类创建dispose()方法(在这里我们选用此名).并且由于继承的缘故,如果我们有其他作为垃圾回收一部分的特殊清理动作,就必须在导出类中覆盖被继承的dispose()方法.当覆盖被继承的diopose()方法时,务必记住调用基类版本dispose()方法:否则,基类的清理动作就不会发生.下例便是一个证明: package polymorphism; class C

Java方法继承、方法重载、方法覆盖小总结

转自:http://blog.csdn.net/cdsnmdl/article/details/3968688 ———————————————————————————————————— 1.方法继承:利用extends关键字一个方法继承另一个方法,而且只能直接继承一个类. 当Sub类和Base类在同一个包时Sub类继承Base类中的public/protected/默认级别的变量个方法 在不同包时继承public/protected级别的变量和方法. 2.方法重载:如果有两个方法的方法名相同,但

古典音乐 (java基础 继承)

摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 一.前言 小朽不才,最近爱上了听古典音乐收录了,mozart ,贝多芬-等好听的歌很是喜欢.戴上耳机,打开电台,整理下java继承. 总结如下: 继承(extends) 方法覆盖(Mehtod Overriding) protected 向上转型 二. 继承(extends) 从编码中,咱们总是在不知不觉的用继承,明确的调用,或是隐式的调用了java根类Object.什

java通过继承来扩展接口

接口主要是为了向上转型,从而使基类(接口方法)更具灵活性!不想废话,看例子: /** * */ package interfaces; interface Monster{ void menace(); } interface DangerousMonster extends Monster{ void destory(); } interface Lethal{ void kill(); } class DragonZilla implements DangerousMonster{ publ

新秀翻译(一个)——Java在继承和组合

阅读英文的程序猿的能力,这是非常重要的.过去的几年中一直在学习英语,今天心血来潮,在网上找什么鲍文简要翻译. 普通级,能力有限,看官还请大家多多指点. 译文: 本文将会举例说明Java中继承和组合的概念.首先举一个继承的样例.然后展示一下怎样用组合来改善继承的设计.最后概括一下怎样在它们之间做出选择. 1. 继承 假设我们有一个Insect类.这个类包括两个方法:一个是move().一个是attack(). class Insect { private int size; private Str