С пониманием наследования в Java обычно трудностей нет, объект наследующий некоторый класс, хоть и не явно
но имеет все тоже самое + свои какие то элементы:
1
2.645
name
9
Как видно с программы, при обращении к переменным: x, y, name, они
выводятся как присущие классу B. B клас унаследовал все переменные от
класса A и имеет свою собственную переменную int arg.
Часто приходится работать с классами разных библиотек. Как уже упоминалось, обьекты в Java не имеют доступа к переменным других обьектов если те находятся в разных пакетах. Поэтому если в программе предусмотрен обмен private переменными между обьектами из разных пакетов, в классах этих обьектов, должны быть методы которые возвращают значения переменных обьектов, по умолчанию все созданые переменные установлены как private :
- public class A {
- int x = 1;
- double y = 2.645;
- String name = "name";
- }
- public class B extends A {
- int arg = 9;
- public static void B(){
- System.out.println(x);
- System.out.println(y);
- System.out.println(name);
- System.out.println(arg);
- }
- }
- //......................
- //.......Вывод программы
- //......................
1
2.645
name
9
Часто приходится работать с классами разных библиотек. Как уже упоминалось, обьекты в Java не имеют доступа к переменным других обьектов если те находятся в разных пакетах. Поэтому если в программе предусмотрен обмен private переменными между обьектами из разных пакетов, в классах этих обьектов, должны быть методы которые возвращают значения переменных обьектов, по умолчанию все созданые переменные установлены как private :
- public class A {
- int a=9;
- public int return_arg(){
- return a;
- }
- }
- public class B {
- int a=6;
- public int return_arg(){
- return a;
- }
- }
- public class example {
- public static void main(String[] args){
- A a = new A();// a.a = 9;
- B b = new B();b.a=6;
- a.a=b.return_arg();
- System.out.println(a.a);
- }
- //......Результат программы....
- 6
- //.............................
- a.a=b.a;// Ошибка программы, нужно установить в классе b : public a;
Комментариев нет:
Отправить комментарий