Member 12784900 Ответов: 1

Можно ли вызвать метод суперкласса внутри подкласса method.in Ява?


/ * Реализация множественного наследования....*/

class Student
{
	int rollNo;
	void getNumber(int n)
	{
		 rollNo=n;
	}
	
	void putNumber()
	{
		System.out.println("Roll no = "+rollNo);
	}
	
}

class Test extends Student
{
	float part1,part2;
	void getMarks(float x,float y)
	{
		part1=x;
		part2=y;
	}
	void putMarks()
	{
		System.out.println("Marks obtained:- ");
		System.out.println("part1 = "+part1);
		System.out.println("part2 = "+part2);
	}
}

interface Sports
{
	static final float sport_wt=6.0f;
	void put_wt();
}

class Results extends Test implements Sports		//multiple inheritance
{
	float total;
	public void put_wt()
	{
		System.out.println("Sports weightage = "+sport_wt);
	}
	
	void display()
	{
		total=part1+part2+sport_wt;
		putNumber();
		putMarks();
		put_wt();
		System.out.println("final result = "+total);
		
	}
	
}

class MultipleInheritance
{
	public static void main(String args[])
	{
		Results r=new Results();
		r.getNumber(33);
		r.getMarks(99.99f,99.99f);
		r.display();
	}	
}


Что я уже пробовал:

как вы можете видеть в программе, метод display() в классе Result напрямую вызывает методы putnumber () и putmarks() , а также putWt без создания объектов, и я думал, что только статические методы могут быть вызваны непосредственно классом.... для вызова нестатических методов вы должны создать и объект..... хотя программа работает отлично fine...so было бы очень полезно, если бы я мог получить ответ и заранее спасибо...

Richard MacCutchan

Ваш дизайн сбивает с толку. Зачем тестировать ученика? Эти два класса не имеют никакой логической связи.

1 Ответов

Рейтинг:
2

CPallini

Вы создали пример от Results, r (поэтому нет необходимости упоминать статические методы). Теперь по наследству, r является один Student и он может вызвать любой метод, который предоставляет класс Student.