「java里面继承」java中继承的用法

博主:adminadmin 2023-03-21 01:58:10 458

本篇文章给大家谈谈java里面继承,以及java中继承的用法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 中普通类继承,抽象类继承,接口类继承,子类一定要重写父类中的方法吗?

不一定。\x0d\x0a1. 普通类继承,并非一定要重写父类方法。\x0d\x0a2. 抽象类继承,如果子类也是一个抽象类,并不要求一定重写父类方法。如果子类不是抽象类,则要求子类一定要实现父类中的抽象方法。\x0d\x0a3. 接口类继承。如果是一个子接口,可以扩展父接口的方法;如果是一个子抽象类,可以部分或全部实现父接口的方法;如果子类不是抽象类,则要求子类一定要实现父接口中定义的所有方法。

谈谈Java中的继承与组合

继承和组合的概念

在新类里简单地创建原有类的对象 我们把这种方法叫作 组合 因为新类由现有类的对象合并而成 我们只是简单地重复利用代码的功能 而不是采用它的形式

第二种方法是创建一个新类 将其作为现有类的一个 类型 我们可以原样采取现有类的形式 并在其中加入新代码 同时不会对现有的类产生影响 这种魔术般的行为叫作 继承 (Inheritance) 涉及的大多数工作都是由编译器完成的 对于面向对象的程序设计 继承 是最重要的基础概念之一 对于组合和继承这两种方法 大多数语法和行为都是类似的(因为它们都要根据现有的类型生成新类型)

组合也就是一个类的对象是另外一个类的成员 一般的程序都有组合的意味 只不过是基本数据类型是成员变量 下面请看具体的例子

class Head

{

Head(){

System out println( head );

}

}

class Body

{

Body(){

System out println( body );

}

}

class Person()

{

Head h=null;

Body b=null;

Person()                                //人是由头和身体组成的 Head和Body的对象是Person的一部分

{

h=new Head();

b =new Body();

}

}

继承作为面向对象的三个重要特性的一个方面 在面向对象的领域有着及其重要的作用 好像没听说哪个面向对象的语言不支持继承

class Person

{

private String name=null;

private int age= ;

public Person(String n int a)

{

name=n;

age=a;

}

int getAge()

{

return age;

}

String getName()

{

return name;

}

void getDescription()

{

System out println( name: +name+ \t + age: +age);

}

}

class Student extends Person

{

private String studno=null;

public Student(String n String no int a)

{

super(n a);

studno=no;

}

}

说明:Student类中有三个成员变量name age studno和一个方法getDescription();

注意:子类继承了父类的所有变量和函数 只是子类不能访问父类的private类型的变量和函数 其实privae类型的变量还是继承到子类中的

无论还是继承 都允许我们将子对象置于自己的新类中 大家或许会奇怪两者间的差异 以及到底该如何选择

如果想利用新类内部一个现有类的特性 而不想使用它的接口 通常应选择组合 也就是说 我们可嵌入一个对象 使自己能用它实现新类的特性 但新类的用户会看到我们已定义的接口 而不是来自嵌入对象的接口 考虑到这种效果 我们需在新类里嵌入现有类的private对象

有些时候 我们想让类用户直接访问新类的组合 也就是说 需要将成员对象的属性变为public 成员对象会将自身隐藏起来 所以这是一种安全的做法 而且在用户知道我们准备合成一系列组件时 接口就更容易理解 car(汽车)对象便是一个很好的例子

class Engine {

public void start() {}

public void rev() {}

public void stop() {}

}

class Wheel {

public void inflate(int psi) {}

}

class Window {

public void rollup() {}

public void rolldown() {}

}

class Door {

public Window window = new Window();

public void open() {}

public void close() {}

}

public class Car {

public Engine engine = new Engine();

public Wheel[] wheel = new Wheel[ ];

public Door left = new Door()

right = new Door(); // door

Car() {

for(int i = ; i ; i++)

wheel[i] = new Wheel();

}

public static void main(String[] args) {

Car car = new Car();

car left window rollup();

car wheel[ ] inflate( );

}

} ///:~

由于汽车的装配是故障分析时需要考虑的一项因素(并非只是基础设计简单的一部分) 所以有助于客户程序员理解如何使用类 而且类创建者的编程复杂程度也会大幅度降低

如选择继承 就需要取得一个现成的类 并制作它的一个特殊版本 通常 这意味着我们准备使用一个常规用途的类 并根据特定的需求对其进行定制 只需稍加想象 就知道自己不能用一个车辆对象来组合一辆汽车——汽车并不 包含 车辆 相反 它 属于 车辆的一种类别 属于 关系是用继承来表达的 而 包含 关系是用组合来表达的

protected

现在我们已理解了继承的概念 protected这个关键字最后终于有了意义 在理想情况下 private成员随时都是 私有 的 任何人不得访问 但在实际应用中 经常想把某些东西深深地藏起来 但同时允许访问衍生类的成员 protected关键字可帮助我们做到这一点 它的意思是 它本身是私有的 但可由从这个类继承的任何东西或者同一个包内的其他任何东西访问 也就是说 Java中的protected会成为进入 友好 状态

我们采取的最好的做法是保持成员的private状态——无论如何都应保留对基 础的实施细节进行修改的权利 在这一前提下 可通过protected方法允许类的继承者进行受到控制的访问

import java util *;

class Villain {

private int i;

protected int read() { return i; }

protected void set(int ii) { i = ii; }

public Villain(int ii) { i = ii; }

public int value(int m) { return m*i; }

}

public class Orc extends Villain {

private int j;

public Orc(int jj) { super(jj); j = jj; }

public void change(int x) { set(x); }

} ///:~

可以看到 change()拥有对set()的访问权限 因为它的属性是protected(受到保护的)

再论合成与继承

lishixinzhi/Article/program/Java/hx/201311/26635

JAVA中,子类将继承父类的所有属性和方法么~?为什么?

是的,子类将继承父类的非私有的属性和方法。

在JAVA中,子类继承父类的所有方法和属性(构造方法要用关键super([参数])调用);继承是JAVA中一个重要的特色,便于程序的编写,提高代码的重用性。

1、如果给子类i提供get和set通过get调用的自然是子类的。

2、如果给父类和子类分别提供get和set,调的仍然是子类的,因为方法被重写。

扩展资料

在继承中用到super调用父类的构造

privateStringname;

privateStringsex;

publicxinxin1(Stringname,Stringsex)

{

this.name=name;

this.sex=sex;

}

publicvoidhello(){

System.out.println(“嗨!我是”+name+”我是”+sex+”孩”);

}

北大青鸟java培训:java继承多态和抽象类接口?

一、继承通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类。

已有的称为父类,新的类称为子类(父类派生子类,子类继承父类)。

(1)继承的优点:  ①代码的可重用性;  ②父类的属性的方法可用于子类;  ③子类可扩展父类的属性和方法;  ④设计应用程序变得更加简单。

(2)关键字“isa”用于判断父类和子类的继承关系是否正确。

(3)Java中继承的实现:  public class 子类extends 父类{}(4)继承的单根性:在Java中一个类只能有一个父类;传递性:一个Java类可以父类,父类也可以有父类。

(5)所有类的根类:  Object类,又叫基类或超类。

  Object类是每个Java类的父类,要么是直接的父类,要么就是间接的父类。

Object类中的三个重要方法:①public boolean equals(Objectx):检测两个对象是否相等。

该方法经常被重写。

若两个对象通过该方法判断是相等的,那么两个对象的hashCode()方法应该产生相同的哈希码②public String toString:该方法返回对象的字符串表示。

用字符串来表示对象有助于调试或测试。

③protected void finalize() throws Throwale:该方法在对象将要被垃圾回收时调用。

(6)方法重写:子类可以重写从父类继承的方法,从而允许子类添加或者改变父类中方法的行为。

该行为方法生在子类中,对父类方法重写。

子类重写父类方法时,浙江北大青鸟认为必须遵循如下规则:①子类的方法的返回值类型、方法名和形式参数列表必须和父类中的是相同的;②访问修饰符必须不小于父类中的访问修饰符;③子类中重写抛出的异常不能比父类中抛出的异常多。

JAVA的单继承中允许一个父类有多个子类吗?

java中对于继承,java只支持单继承。java虽然不直接支持多继承,但是保留了这种多继承机制,进行改良。

单继承:一个类只能有一个父类。

多继承:一个类可以有多个父类。

为什么不支持多继承呢?

因为当一个类同时继承两个父类时,两个父类中有相同的功能,那么子类对象调用该功能时,运行哪一个呢?因为父类中的方法中存在方法体。

但是java支持多重继承。A继承BB继承CC继承D。

多重继承的出现,就有了继承体系。体系中的顶层父类是通过不断向上抽取而来的。它里面定义的该体系最基本最共性内容的功能。

所以,一个体系要想被使用,直接查阅该系统中的父类的功能即可知道该体系的基本用法。那么想要使用一个体系时,需要建立对象。建议建立最子类对象,因为最子类不仅可以使用父类中的功能。还可以使用子类特有的一些功能。

简单说:对于一个继承体系的使用,查阅顶层父类中的内容,创建最底层子类的对象。

子父类出现后,类中的成员都有了哪些特点:

1:成员变量。

当子父类中出现一样的属性时,子类类型的对象,调用该属性,值是子类的属性值。

如果想要调用父类中的属性值,需要使用一个关键字:super

This:代表是本类类型的对象引用。

Super:代表是子类所属的父类中的内存空间引用。

注意:子父类中通常是不会出现同名成员变量的,因为父类中只要定义了,子类就不用在定义了,直接继承过来用就可以了。

java使用什么关键字实现继承?

在Java语言中,使用`extends`关键字来实现继承,这种类型的继承被称为类继承(class inheritance)。

继承是面向对象编程中的一种重要机制,它允许一个类继承另一个类的属性和方法,并可以扩展或重写这些属性和方法。在Java中,使用`extends`关键字来实现继承关系。继承的语法如下:

```

class SubClass extends SuperClass {

// SubClass的属性和方法定义

}

```

其中,`SubClass`是子类的名称,`SuperClass`是父类的名称。子类继承了父类的所有非私有字段和方法,并可以进行扩展或者重写它们。

子类可以访问父类的非私有属性,也可以重写它们。子类还可以调用父类的方法,包括被子类重写的方法。此外,子类也可以新增方法和属性,增加类的功能。

需要注意的是,Java不支持多重继承,即一个类不能同时继承多个父类。但是,Java通过接口实现了多重继承,并允许一个类实现多个接口。在实现接口时,需要使用`implement`关键字。

继承是Java面向对象编程中的一个基本概念,它允许开发者复用现有的代码,同时也可以扩展类的功能,提高代码的重用性和可维护性。

java里面继承的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中继承的用法、java里面继承的信息别忘了在本站进行查找喔。