java忽略字段继承的简单介绍

博主:adminadmin 2022-12-17 10:24:06 59

今天给各位分享java忽略字段继承的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java中,如果父类子类关系超过2层,中间层次的类中有同名字段,怎么在底层子类中访问顶层父类的字段?

很简单,只要把当前对象转换成你最上级的类型就可以了

不如

B继承A,

C继承了B

那么在C里访问A的变量,只要写

A

a

=

(A)this;

然后就可以了

因为强制类型转换会舍弃子集的所有内容,所以会忽略掉C和B的字段值

新手求助java继承问题

class Employee{

private String name ;

private int month;

public Employee(){

}

public Employee(String name , int month){

this.setName(name) ;

this.setMonth(month);

}

public double getSalary(int mounth){

return 100;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getMonth() {

return month;

}

public void setMonth(int month) {

this.month = month;

}

}

class SalaryEmployee extends Employee{

private double salary ;

public SalaryEmployee() {

}

public SalaryEmployee(double salary,String name,int month) {

super(name,month);

this.salary=salary;

}

public void setSalary(double salary) {

this.salary = salary;

}

public double getSalary() {

return salary;

}

public double getSalary(int mounth){

return getSalary()+100;

}

}

class HourlyEmployee extends Employee{

private int hour;

private double asalary;

public HourlyEmployee() {

}

public HourlyEmployee(String name ,int month , int hour,double asalary) {

super(name,month);

this.hour=hour;

this.asalary=asalary;

}

public int getHour() {

return hour;

}

public double getAsalary() {

return asalary;

}

public double getSalary(int mounth){

double sal = 0;

if (hour160) {

sal=asalary*160+asalary*1.5*(hour-160);

}else{

sal=asalary*hour;

}

return sal+100;

}

}

public class test{

public static void main(String[] args) {

}

}

java中的继承

当然有

father a = new son 是属于父类引用指向了子类对象,java把这种把子类对象赋给父类引用变量称之为向上转型

区别:给你举个例子

比如,father类有一个eat()方法,son类继承了father类,也就拥有了eat()方法,并同时定义了自己的方法drink().如果是father a = new son ,则你只能调用属于father 的方法eat(),而不能调用son的方法drink().也就是说虽然变量a 指向了对象 son ,但由于它编译时的类型是father,所以它不能调用属于son的方法,尽管变量a运行时的类型是son.

而son a = new son中的a则可以调用属于它自己的方法drink().和它继承的方法eat(),因为a 这个引用变量编译时的类型和运行时的类型都是son.

再说的大众些,father a = new son 是以父亲的角度看儿子,由于父子之间有继承关系,你是创造了一个儿子对象并把它当父亲用,所以你只能调用属于父亲的方法,而son a = new son就是你是创造了一个儿子对象并把它当儿子,所以你可以调用属于儿子的方法和他所继承父亲的方法

以后你理解了多态以后,就好理解这个问题了

若一个类不希望被继承,请问在Java中如何实现?

加上final

JAVA容许类地继承,而且是单继承,也就是一个子类只可以有一个直接父类(基类),但是这个子类的父类有可能是另一个类的子类,例如A extends B,B extends C,A也就拥有了C的可见成员与方法,这是类继承的传递性。但是C++中容许一个子类可以有多个基类,是容许多继承的,例如class A:public B,public C,这虽然能更好的描述显示世界,但是也让问题更复杂。JAVA通过类继承的传递性实现了C++的多继承的功能。

java中继承可以发生在子类和父类中这是和c++的不同点吗。

所谓的继承就是一个类继承类另一个类,拥有了父类(c++中的基类)的可见成员与可见方法,继承只能发生在子类和父类中

关于java忽略字段继承和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-17,除非注明,否则均为首码项目网原创文章,转载请注明出处。