【java – 如何测试调用父类的受保护(不需要)方法的方法?】教程文章相关的互联网学习教程文章

尝试使用父类方法时Java调用子类方法【代码】

如果我有两个班,A和B,public class A {public int test() {return 1;} }public class B extends A{public int test() {return 2;} }如果我这样做:A a1 = new B(),则a1.test()根据需要返回2而不是1.这只是Java的一个怪癖,还是有这种行为的原因?解决方法:不,这是正确的(这是由于多态性).所有方法调用都是对象操作,而不是引用类型. 这里你的对象是B类,所以将调用B类的测试方法.

java – 为什么我无法使用父类型访问子对象方法【代码】

对象a2属于类型A但引用了类C的对象.因此,a2应该能够访问m3().但是,为什么不发生?如果在类A中定义了m3()方法,则代码可以正常运行class A {int var = 7;void m1() {System.out.println("A's m1 ,");}void m2() {System.out.println("A's m2 ,");} }class B extends A {void m1() {System.out.println("B's m1 ,");} }class C extends B {void m3() {System.out.println("c's m3 ," + (var + 6));} }class Mixed {public static void...

Java中常用数据类型的父类

1.1基本数据类型没有 父类。System.out.println(int.class.getSuperclass()); System.out.println(double.class.getSuperclass()); System.out.println(char.class.getSuperclass()); System.out.println(byte.class.getSuperclass()); System.out.println(long.class.getSuperclass()); System.out.println(short.class.getSuperclass()); System.out.println(float.class.getSuperclass()); System.out.println(boolean.class.ge...

Java基础系列 - 子类继承父类,调用父类的构造函数

package com.test7;public class test7 {public static void main(String[] args) {Son son = new Son(1000, "张三");/*** 打印显示Father的构造函数1000 张三Son的构造函数1000 张三*/} }class Father {private int userId;private String userName;public Father(int userId, String userName) {System.out.println("Father的构造函数" + userId + " " + userName);this.userId = userId;this.userName = userName;} }class Son ...

【Java基础】方法重写为什么不能抛出比父类更多的异常?【代码】

原文链接:https://blog.csdn.net/fortheother/article/details/10087713 今天看视频的时候,方立勋老师说到这个问题,他举出一个例子,说父亲有一个错误的方法,导致自己可能犯错,可能杀人放火。儿子继承了父亲这个方法,那么儿子肯定不能比父亲更坏,不能够在杀人放火的基础上还调戏妇女。 听到这个问题之后,我就觉得不对劲。即便是模拟现实,儿子不能比父亲更加差劲这种东西也太违背自然规律了,因为...

Java中子类继承父类关于构造方法的问题

子类继承了父类,若父类的构造方法没有重载那么,子类的构造方法也不需要通过super调用父类构造方法。一个类中如果构造方法重写了并且带了参数,那么这个类的原来系统默认的无参构造方法便消失。由此,若一个父类中只有一个带参数的构造方法,那么在写其子类的构造方法时必须先通过super调用父类的构造方法才能完成子类的构造方法而且super只能写在子类构造方法体内的第一行。

JAVA子类继承父类的成员变量以及方法

Dog继承Animalclass Animal{protected String name;protected String description;protected String say() {return "一只动物";} }class Dog extends Animal{private String name;protected String say() {return "我是忠犬八公,我父类是" + super.say();}private String getName() {return "我的名字是" + name + ",我父类的名称是" + super.name;}public static void main(String[] args) {Dog dog = new Dog();dog.name = "忠犬...

在Java中使用传递子类数组作为其父类【代码】

我有三个类的模拟:实体,植物和动物(植物和动物扩展实体). 我想要一个方法能够对三个数组进行排序,数组中的元素都继承自同一个类. 有没有办法将所有数组作为父类传递给方法. 我打电话给:sortEntityArray(AnimalList);从:void sortEntityArray(ArrayList<Entity> ListToSort) {boolean sorted = false;while (sorted == false) {sorted = true;for (int i1 = 0; i1 < ListToSort.size() - 1; i1++) {if (ListToSort.get(i1).Posit...

java学习(50):子类继承会优先调用父类的构造器【图】

定义一个父类 public class Parent { public void run(){ System.out.println(“我会跑步”); } public Parent(){ System.out.println(“我是爸爸”); } } 定义一个子类 public class Son extends Parent { public Son(){ System.out.println(“我是儿子”); } } 定义一个测试类 public class test { public static void main(String[] args){ Son son=new Son(); son.run(); } }

java – 为什么可以将具体类的子类声明为abstract,并且可以重写某些父类方法并将其声明为abstract?【代码】

通常我们声明抽象类的子类是具体的,并将抽象方法覆盖为具体的.是否存在相反的用途?解决方法:想到一个用例.. 想象一下,你有一个如下课程..public abstract class Animal {// Some stuff. }然后你说,好吧,现在我想要一个长颈鹿课.长颈鹿是特定的,所以没有必要让它抽象..public class Giraffe {// Some stuff that overrides or uses the Animal behaviour. }现在给它一些时间,当你有六到七个使用你的代码的应用程序时. 然后,有一天当...

java – 在其引用类型和父类引用类型中继承类对象之间的区别是什么【代码】

我有这三个班public class Abc {public methAbc(){System.out.println("parent class method");} }public class Xyz extends Abc {public methAbc(){System.out.println("overriden parent class method");}public methXyz(){System.out.println("child class method");} }class Pqr {Xyz childObjChildRef = new Xyz();Abc childObjParentdRef = new Xyz(); }在课程Pqr在不同引用中创建对象的主要区别是什么 1:在同一个类引用中...

如果父类不是,那么java 8方法引用是否可以被垃圾收集?【代码】

如果我有public interface Foo {public void oneMethod(); }然后我又上了一堂课:public class TestClass {SoftReference sr;public test() {doSomething(this::lalala);}public lalala() {}public doSomethingFoo(Foo foo) {sr = new SoftReference(foo);//can sr.get() ever return null?} }sr.get()能否返回null? 也有兴趣知道在不使用方法引用而是使用匿名内部类或非静态内部类的情况下的行为.解决方法:为方法引用创建的实例的...

在Java中继承没有父类型的类【代码】

如何在不采用父类型的情况下从其他类继承? 例如,我希望能够让Car采用Vehicle的所有方法和属性,而不会被识别为Vehicle类型的Object. 有没有一种方便的方法在Java中执行此操作而不重复所有方法和属性?解决方法:这取决于你方便的定义.您正在寻找 Forwarding / Composition / Aggregation,基本上:class B {A a;T foo() { return a.foo(); } }这意味着A中定义的所有方法都需要在B中重复. 这经常出现在关于Inheritance vs. Aggregatio...

java – 父类是否应该引用子类?【代码】

早上好, 我在工作中继承了一些遗留代码,它使用了一种相当不寻常的设计模式.我在论坛上找到的类似模式的唯一参考是here.情况是原始设计者有一个通用的父类(非抽象),它有一个直接引用子类的静态工厂方法. 以下是遗留代码中的几个位置的编码样式示例:public static LoggerFactory getLoggerFactory(LogType type) {switch (type) {case LOG4J:return Log4JLoggerFactory.getInstance();case LOGBACK:return LogBackLoggerFactory.get...

Java通过反射得到其属性的值包含父类属性【代码】

public class ObjectUtils { private static final Logger LOG = LoggerFactory.getLogger(ObjectUtils.class);/*** 反射取得bean中对应属性的值* @param bean* @param fieldName* @return*/public static Object getProperty(Object bean, String fieldName) {Object obj = getProperty(bean.getClass(),bean,fieldName);return obj;}private static Object getProperty(Class _class,Object bean,String fieldName){Object obj =...