кода 1:Overriding- Почему долго вызываются вместо Int
class Tyre
{
public void front() throws RuntimeException
{
System.out.println("Tire");
}
public void front(int a)
{
System.out.println("Radial Tire with int in tyre");
}
public void front(long a)
{
System.out.println("Radial Tire with long");
}
}
class RadialTyre extends Tyre
{
public void front()
{
System.out.println("Radial Tire");
}
public void front(int a)
{
System.out.println("Radial Tire with int");
}
}
class Test
{
public static void main(String... args)
{
Tyre t = new RadialTyre();
int a = 10;
t.front(a);
}
}
о/р для code1: -радиальные шины с Int
кодом 2: -
class Tyre
{
public void front() throws RuntimeException
{
System.out.println("Tire");
}
public void front(long a)
{
System.out.println("Radial Tire with long");
}
}
class RadialTyre extends Tyre
{
public void front()
{
System.out.println("Radial Tire");
}
public void front(int a)
{
System.out.println("Radial Tire with int");
}
}
class Test
{
public static void main(String... args)
{
Tyre t = new RadialTyre();
int a = 10;
t.front(a);
}
}
о/p для кода 2: - Радиальная шина с длинными
Почему в методе child1 класса int вызывается в то время как в классе code2 вызывается длинный длинный метод? Если это происходит из-за расширения, то почему в случае расширения1 не происходит? В коде1 почему метод дочернего класса int вызывается, когда метод int уже существует в родительском классе?
Спасибо, что ответили на мой первый вопрос. Если Tire не известно о RadialTyre, то почему метод int RadialTyre выполняется вместо метода int из класса Tire в коде1? Эти методы int определенно переопределены. – Snehal
@Snehai Отвечал и на третий вопрос. Однако мой основной язык не английский, и я никогда не слышал о «расширении». Я читаю об этом в Википедии, это, похоже, не связано с вашим вопросом. Можете ли вы уточнить? – BackSlash
Вы можете сослаться на это для понимания расширения https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html – Snehal