자바 내공 향상 의 다 형
public class anmals(){
}
public class dog extends animals { } public static void main(String[] , args){
animals obj1 = new animals();// obj1 ;
animals obj2 = new dog();// obj2 ;
}
2.
, ;
, ;
public class anmals(){
public void running(){
System.out.println(" ");
}
}
public class dog extends animals { public void running(){
System.out.println(" ");
}
}
public class cat extends animals { ** running() ** } public static void main(String[] , args){
animals obj1 = new animals();// obj1 ;
obj1.running();// , ;
animals obj2 = new dog();// , ;
obj2.running();// , ;
animals obj3 = new cat();// obj2 ;
obj3.running();// , ;
}
:
(2) 다 중 참조 유형 변환 1. 상 향 유형 변환 (변환 방식: 암시 적 / 자동 유형 변환) 은 작은 유형 에서 큰 유형 으로 전환 합 니 다.(위험 없 음) 2. 아래로 유형 전환 (전환 방식: 강제 유형 전환) 은 큰 유형 에서 작은 유형 으로 전환 합 니 다.(위험 이 있 음) 어떻게 위험 문 제 를 피 합 니까?3. instanceof 연산 자 를 사용 하여 인용 대상 의 유형 을 해결 하고 유형 전환 의 안전성 문 제 를 피한다.문법: if (부모 클래스 instanceof 하위 클래스) (하위 클래스) 대상 = (하위 클래스) 부모 클래스 대상; 곶else{ …….. }
public static void main(String[] , args){
dog dog_7 = new dog();
if( animals instanceof dog){
animals animals_7 = dog_7 ;// ,
}else{
System.out.println(" dog ");
}
dog dog_9 =(dog)animals;//
if(animals instanceof cat){
cat cat_7 = (cat)animals;//1. ,cat ;2. ,dog ;
}else{
System.out.println(" cat ");
}
}
:
cat
1. :
abstarct , ;
2. :
a. , , ;
b. , , ;
3. :
, ;
4. :
a. abstarct ;
b. abstarct , , ;
c. ;
d. , ;
e. , ;
:
:myAnimals
public abstarct class myAnimals{
public abstarct void run();
public abstarct void eat();
}
Dog, myAnimals
public class Dog extends myAnimals{
// myAnimals run() ,eat()
public abstarct void run(){
System.out.println(" ");
}
public abstarct void eat(){
System.out.println(" ");
}
}
Cat, myAnimals
public class Cat extends myAnimals{
public abstarct void run(){
System.out.println(" ");
}
public abstarct void eat(){
System.out.println(" ");
}
}
//
public static void main( String[] , args){
myAnimals myanimals_7 = new Dog();//
myanimals_7.run();
myanimals_7.eat();
myAnimals myanimals_9 = new Cat();//
myanimals_9.run();
myanimals_9.eat();
}
:
(3)다 중 인터페이스 a. 인터페이스의 정의: 클래스 는 구체 적 인 실현 체 이 고 인 터 페 이 스 는 특정한 유형 이 지 켜 야 할 규범 을 정의 합 니 다. 인 터 페 이 스 는 이러한 내부 데이터 에 관심 이 없고 이런 유형의 방법의 실현 디 테 일 에 도 관심 이 없습니다. 이 유형 에서 반드시 특정한 방법 을 제공 해 야 한다 고 규정 합 니 다. b. 문법: 클래스 정의 와 달리 인 터 페 이 스 를 정의 하고 class 키 워드 를 사용 하지 않 습 니 다.interface 키 워드 를 사용 합 니 다. c. 인터페이스 정의 의 기본 문법: [수정자] interface 이름 [extends 부모 인터페이스 1, 부모 인터페이스 2...]d. 인 터 페 이 스 를 수식 합 니 다. d. 인터페이스 에서 정 의 된 상수: 1) 인터페이스의 속성 은 상수 입 니 다. 정의 할 때 Public static final 장식 부 를 추가 하지 않 아 도 시스템 은 자동 으로 추 가 됩 니 다. 2) 인터페이스 에서 의 방법 은 추상 적 인 방법 일 뿐 항상 사용 합 니 다. 정의 할 때 Public static final 장식 부 를 추가 하지 않 아 도 시스템 은 자동 으로 추 가 됩 니 다. e. 인터페이스의 사용 1)하나의 클래스 는 하나 또는 여러 개의 인 터 페 이 스 를 실현 할 수 있 습 니 다. 인 터 페 이 스 는 implements 키 워드 를 사용 합 니 다. 자바 의 한 클래스 는 하나의 부모 클래스 만 계승 할 수 있 고 유연성 이 부족 합 니 다. 여러 개의 인 터 페 이 스 를 통 해 보충 할 수 있 습 니 다. 부모 클래스 를 계승 하여 인 터 페 이 스 를 실현 하 는 문법: [수정자] class 클래스 이름 extends 부모 클래스 implement 인터페이스 1, 인터페이스 2...{클래스 부분 / / 추상 류 를 계승 하려 면 계승 을 실현 하 는 추상 적 인 방법 이 필요 하 며 인터페이스 에서 추상 적 인 방법 을 실현 해 야 합 니 다.}부모 클래스 를 계승 하려 면 부모 클래스 를 계승 하려 면 인 터 페 이 스 를 실현 하기 전에!! 2) 인 터 페 이 스 를 사용 하 는 과정 에서 익명 내부 클래스 와 자주 협조 하여 사용 해 야 합 니 다. 익명 내부 클래스: 이름 이 없 는 내부 클래스 입 니 다. 실현 에 관심 을 가지 지 않 고 실현 에 관심 을 가지 지 않 는 이름 문법: Interface i = new Interface () {Public void method () {System. out. println ()"익명 내부 클래스 가 인 터 페 이 스 를 실현 하 는 방식");}; 예 를 들 어:
:myAnimals
public abstarct class myAnimals{
public abstarct void run();
public abstarct void eat();
}
//
public interface IclimbTree{
public void climbtree();
}
Dog, myAnimals
public class Dog extends myAnimals{
// myAnimals run() ,eat()
public abstarct void run(){
System.out.println(" ");
}
public abstarct void eat(){
System.out.println(" ");
}
}
Cat, myAnimals
public class Cat extends myAnimals implements IclimbTree{
public abstarct void run(){
System.out.println(" ");
}
public abstarct void eat(){
System.out.println(" ");
}
public abstarct void climbTree(){
System.out.println(" ");
}
}
// fly,
public class fly implements climbTree {
@Override
public void climbtree() {
// TODO Auto-generated method stub
System.out.println(" !");
}
}
//
public static void main( String[] , args){
/* myAnimals myanimals_7 = new Dog();// myanimals_7.run(); myanimals_7.eat(); myAnimals myanimals_9 = new Cat();// myanimals_9.run(); myanimals_9.eat(); */
IclimbTree ic1 = new Cat();// ;
ic1.climbtree();
IclimbTree ic2 = new fly();// ;
ic2.climbtree();
// ;
IclimbTree ic3 = new IclimbTree(){
public void climbtree() {
// TODO Auto-generated method stub
System.out.println(" !");
}
};
// IclimbTree()
ic3.climbtree();
}
// new , climbtree()
new IclimbTree(){
public void climbtree() {
// TODO Auto-generated method stub
System.out.println(" new ");
}
}.climbtree();
:
!
!
new
이제 다 태 라 는 찌꺼기 를 완전히 정복 하 겠 군 ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.