java忽略字段继承的简单介绍
今天给各位分享java忽略字段继承的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java中,如果父类子类关系超过2层,中间层次的类中有同名字段,怎么在底层子类中访问顶层父类的字段?
- 2、新手求助java继承问题
- 3、java中的继承
- 4、若一个类不希望被继承,请问在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忽略字段继承和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-17,除非注明,否则均为
原创文章,转载请注明出处。