Наследование и инкапсуляция
Написал для обучения пример, однако не понимаю почему я не могу вызвать netflix.displayInfo();
так же меня интересует вопрос по поводу public void displayInfo() в классе Amazon, как я могу получить доступ к полям которые наследуется из класса Company.
package CompanyProgram;
public class Company {
private int avgSalary;
private String address;
public int worksNum;
public String companyName;
public static void main(String[] args) {
Company company = new Company("Company", 3, "West Hollywood", 40000);
Amazon amazon = new Amazon("Amazon", 1200, "Nord Hollywood",70000,7);
HBO hbo = new HBO("Amazon", 1200, "Nord Hollywood",70000,2);
Netflix netflix = new Netflix("Netflix", 3, "South Hollywood", 80000);
Netflix.displayInfo();
}
public Company(String companyName, int worksNum, String address, int avgSalary){
this.companyName = companyName;
this.worksNum = worksNum;
this.address = address;
this.avgSalary = avgSalary;
}
public String getAddress(){
return this.address;
}
public void displayInfo(){
System.out.printf("Company name: %d \n", companyName);
System.out.printf("Workers count: %d \n",worksNum);
System.out.printf("adress: %d \n", address);
System.out.printf("average salary: %d \n", avgSalary);
}
public void setAddress(String address){
this.address = address;
}
public String getAvgSalary(){
return this.companyName;
}
public void setAvgSalary(int avgSalary){
this.avgSalary = avgSalary;
}
}
class Amazon extends Company{
private int filmCount;
public Amazon(String companyName, int worksNum, String address, int avgSalary, int filmCount) {
super(companyName, worksNum, address, avgSalary);
this.filmCount = filmCount;
}
public int getFilmCount(){
return this.filmCount;
}
public void setFilmCount(int filmCount){
this.filmCount = filmCount;
}
public void displayInfo(){
// System.out.printf("Company name: %d \n", companyName);
// System.out.printf("Workers count: %d \n",worksNum);
// System.out.printf("address: %d \n", address);
// System.out.printf("average salary: %d \n", avgSalary());
System.out.printf("Film Count: %d \n", filmCount);
}
}
class Netflix extends Company{
public Netflix(String companyName, int worksNum, String address, int avgSalary) {
super(companyName, worksNum, address, avgSalary);
}
}
class HBO extends Amazon{
public HBO(String companyName, int worksNum, String address, int avgSalary, int filmCount) {
super(companyName, worksNum, address, avgSalary, filmCount);
}
}
Ответы (1 шт):
Автор решения: Anton Buketov
→ Ссылка
Проблема была в следующем: System.out.printf(), исправил на println. Понимаю инкапсуляцию верно ).