abhay.lolekar
BAN USERpublic class Marks
{
public static int final maxMarks;
private int marks1;
private int marks2;
private int marks3;
public Marks()
{
}
public Marks(int marks1, int marks2, int marks3)
{
this.marks1 = marks1;
this.marks2 = marks2;
this.marks3 = marks3;
maxMarks = 100;
}
public int getMarks1()
{
return this.marks1;
}
public void setMarks1(int marks1)
{
this.marks1 = marks1;
}
public int getMarks2()
{
return this.marks2;
}
public void setMarks2(int marks2)
{
this.marks2 = marks2;
}
public int getMarks3()
{
return this.marks3;
}
public void setMarks3(int marks3)
{
this.marks3 = marks3;
}
public int getMaxMarks()
{
return Math.max(marks1, Math.max(marks2,marks3));
}
public boolean isPass()
{
return ((marks1+marks2+marks3)/3) >= 40.0f;
}
}
import java.util.ArrayList;
public class StudentList{
private ArrayList<Marks> allMarks;
public StudentList()
{
allMarks = new ArrayList<Marks>();
}
public int totalStudents()
{
return allMarks.size();
}
public int passCount()
{
int count = 0;
for(Marks m : allMarks)
{
if(m.isPass())
count++;
}
return count;
}
}
Overriding base class method with weaker access level is not allowed in Java and .Net.
- abhay.lolekar August 31, 2014Vice-versa is still possible (unless the access modifier is not private, even though you can create a method with same name it is not overriding in true sense).
A typical scenario where this seems to be required is encapsulating 3rd Party APIs.