我知道有很多关于Java继承的线程(并且我已经读过),但是它们都代表“它是如何”的,我需要“如何改变它”的知识。因此,我们有2个类别:
class t1{
public int a=5;
public void get(){
System.out.println(a);
}
}
class t2 extends t1{
public int a = 1;
}
现在 :
t2 z = new t2();
z.get();
我们得到 5
当然,这只是示例,但是我想做的是在超类中使用一些通用方法,这些方法将使用继承类的字段。用户留言
有什么办法吗?如果不是,那我为什么要使用超类,我还能使用其他任何东西吗?
提前致谢
是的,有一种方法可以做到这一点。您可以应用称为“模板方法”的模式。这是一个例子
class Base {
void someMethod() {
int value = getValue();
// calculate something
}
protected abstract int getValue();
}
class Derived extends Base {
int getValue() {
return 5;
}
}
getValue()
模板方法在哪里,您可以在继承的类实现中插入任何逻辑。
我已经创建了一个名为“产品”的自定义帖子类型和一个名为“配料”的帖子类型中的自定义分类。 我已经添加了一个名为“成分INCI”的repeater字段和“成分INCI组”的子字段,该字段调用分类法“成分”中的值。 自定义中继器字段屏幕截图: 每个产品都有很多成分,我想展示一个产品所选成分的列表。这是我的模板代码: 此代码似乎破坏了输出。请帮忙!
本小节我们将学习 Java 的继承,通过本小节的学习,你将知道什么是继承,继承有什么特点,如何实现继承,方法重写的概念和实现,方法重写和方法重载是比较容易混淆的概念,我们也会介绍两个概念的区别,这些都是本小节的重点,本小节的最后我们还会介绍 super 关键字以及 final 关键字。 1. 概念和特点 1.1 概念 继承是面向对象软件技术当中的一个概念。如果一个类别 B “继承自” 另一个类别
问题内容: 假设Java具有以下层次结构类: 这是C#中相同代码的(盲)重复: 当我执行Java代码时,我得到了C#返回的信息。 对我来说,C#的结果更有意义,因为引用B调用了它自己的方法。 Java设计者决定打印而不是打印的逻辑是什么?我的意思是,为什么引用B在C中使用覆盖方法?这种方法的优势是什么? 如何更改Java代码以像C#一样打印出来?我的意思是,我怎么教Java调用它使用的完全引用的方
我遵循Github代码向ACF中继器字段添加更多负载。我有101个字段,但加载更多的字段无效。我也试着成为一个臭虫。Ajax响应为0。可能是通过Ajax,它不工作。我需要在函数上添加任何内容吗。php文件。Ajax响应为0。
问题内容: 问题的简短摘要:我有一个父类,并由子类扩展。 该子类使用super调用Parent的构造函数: 我想知道是否可以在Grandchild类的构造函数中调用super()方法来扩展Child类: 问题答案: super()在继承上一级调用构造函数,如果存在无参数的构造函数,则将隐式调用该构造函数。 对象是从继承的最高层初始化的,在您的情况下是对象>父>子>孙。 从文档中:
问题内容: 我有一个Java类,它会触发自定义Java事件。该代码的结构如下: 一切正常,但是我想创建一个新的A类(称为B),这可能会引发一个新事件。我正在考虑以下修改: 这是正确的方法吗?我在网上搜索示例,但找不到任何示例。 在此解决方案中,有几件事我我不喜欢: 有两种方法,一种使用另一种方法作为参数。 类都具有和方法。是否应该使用private关键字隐藏addAListener? [更新:无法