В чем разница между абстракцией данных и скрытием кода в Java?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 В чем разница между абстракцией данных и скрытием кода в Java?

Сообщение Anonymous »

Недавно я начал изучать Java с нуля через курс Udemy - основы Java до продвижения Шрьянш Джайн. Первая лекция охватывала эти темы - абстракция и инкапсуляция. Я знаком с < /strong>
oops, 4 столба OOP, но мне не хватает глубинных знаний. < /Strong> < /p>
< /blockquote>
Определение абстракции данных учебника - < /p>

Сокрытие деталей внутренней реализации и обнаружение функции
для пользователя. Абстракция может быть достигнута с помощью
Abstract Class & Interfaces.abstract class Animal {
abstract void sound(); // Abstract method with no implementation
void sleep() { // Concrete method
System.out.println("This animal is sleeping.");
}
}

class Dog extends Animal {

void sound() {
System.out.println("Dog barks.");
}
}

class Cat extends Animal {

void sound() {
System.out.println("Cat meows.");
}
}

public class Main {
public static void main(String[] args) {
// Client code using Animal reference
Animal animal1 = new Dog(); // Polymorphic reference
Animal animal2 = new Cat(); // Polymorphic reference

// Client calls sound() without knowing the implementation
System.out.println("Animal 1 makes sound:");
animal1.sound(); // Calls Dog's sound() implementation
System.out.println("Animal 2 makes sound:");
animal2.sound(); // Calls Cat's sound() implementation

// Client also calls sleep()
animal1.sleep();
animal2.sleep();
}
}
< /code>
Поскольку у меня были некоторые сомнения, я обращался за помощью к Chatgpt и Grok. Я сомневаюсь, что если абстракция означает скрыть внутреннюю реализацию, то если я нажимаю на тип ссылки (животное) или Constructor Dog (), я вижу внутреннюю реализацию этих классов и методов. Абстракция, это предложило мне < /p>

Создать новый проект Maven (давайте назовем его проектом a) с помощью
требуемые классы /интерфейсы. /> < /ol>
Итак, я создал Jar of Project A, новый проект (клиент -проект) и добавил JAR Project A в зависимости. Затем удалил проект A из IDE. Я добавил эту строку в клиентский проект -< /p>
Animal animal1 = new Dog();
< /code>
Теперь, когда я нажимаю на ссылку на животное или конструктор Dog (), я не вижу реализации. Тогда я подумал, что круто, это абстракция. < /P>
Тогда что -то пересекало мой разум -< /p>

Если я могу сделать это с абстрактными классами и интерфейсами, то я могу сделать
то же самое с нормальным классом и методами. банка этого, удалила проект из IDE. Затем я добавил зависимость в клиентском проекте и добавил эту строку -< /p>
SimpleClass simpleClass = new SimpleClass();
< /code>
Как и раньше, когда я нажимаю на ссылку или конструктор, я не вижу реализации. < /p>
Без какого -либо абстрактного класса или интерфейса все еще, реализация скрыта. Чем это отличается от абстракции? Когда я задал этот вопрос CHATGPT, он ответил: < /p>

абстракция - скрывая логику реализации на языковом уровне
через абстрактные классы или интерфейсы < /p>
< /blockquote>

код, скрытый - укрытие исходного
vise vise visiby (jars jars. Разработчик или пользователь < /p>
< /blockquote>
Как они даже разные. Это все еще чувствует то же самое для меня. Я не могу понять концепцию абстракции упс в Java. Я сейчас более запутался; Кто -нибудь может помочь мне в этом?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ng-in-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • В чем разница между абстракцией данных и скрытием кода в Java? [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Разница между полиморфизмом и абстракцией
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Переключение между отображением и скрытием пароля на Blazor
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Экземпляр и статический поток управления с наследованием и переопределением/скрытием метода
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Разница между Convolve2d и Filter2d. Почему существует разница в выходных формах?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»