14일차(상속)

12896 단어 JAVA 공부제1단계
1. 
(상속,this

super 
키워드) 다음 코드가 있습니다.
class Super{
public Super(){
System.out.println("Super()");
}
public Super(String str){
System.out.println("Super(String)");
}
}
class Sub extends Super{
public Sub(){
System.out.println("Sub()");
}
public Sub(int i){
this();
System.out.println("Sub(int)");
}
public Sub(String str){
super(str);
System.out.println("Sub(String)");
}
}
public class TestSuperSub{
public static void main(String args[]){
Sub s1 = new Sub();
Sub s2 = new Sub(10);
Sub s3 = new Sub("hello");
}
}
프로그램이 실행된 결과를 작성합니다.
결과 출력:
Super()
Sub()
Super()
Sub()
Sub(int)
Super(String)
Sub(String)
2. 
(super
) 다음 코드를 보고 프로그램이 실행된 결과를 작성합니다
class Super{
public void m1(){
System.out.println("m1() in Super");
}
public void m2(){
System.out.println("m2() in Super");
}
}
class Sub extends Super{
public void m1(){
System.out.println("m1() in Sub");
super.m1();
}
}
public class TestSuperSub{
public static void main(String args[]){
Sub s = new Sub();
s.m1();
s.m2();
}
}
결과 출력:
m1() in Sub
m1() in Super
m2() in Super
3. (상속, 대상 구조 과정) 다음과 같은 코드가 있다.
class Meal{
public Meal(){
System.out.println("Meal()");
}
}
class Lunch extends Meal{
public Lunch(){
System.out.println("Lunch()");
}
}
class Vegetable {
public Vegetable(){
System.out.println("Vegetable()");
}
}
class Potato extends Vegetable{
public Potato(){
System.out.println("Potato()");
}
}
class Tomato extends Vegetable{
public Tomato(){
System.out.println("Tomato()");
}
}
class Meat{
public Meat(){
System.out.println("Meat()");
}
}
class Sandwichextends Lunch{
Potato p = new Potato();
Meat m = new Meat();
Tomato t = new Tomato();
public Sandwich(){
System.out.println("Sandwich()");
}
public class TestSandwich{
public static void main(String args[]){
Sandwich s = new Sandwich();
}
}
이 코드의 출력 결과를 쓰십시오.
결과 출력:
Meal()
Lunch()
Vegetable()
Potato()
Meat()
Vegetable()
Tomato()
Sandwich
()
4*(메소드 덮어쓰기) 코드는 다음과 같습니다.
class Super{
int method(){return 0;}
}
class Sub extends Super{
//1
}
에서
//1 
에서 컴파일할 수 있는 코드는 다음과 같습니다.
A. public int method(){return 0;}
B. void method(){}
C. void method(int n){}
AC
5. *
(방법 덮어쓰기) 다음과 같은 코드가 있습니다.
class Super{
private void method(){}
}
class Sub extends Super{
//1
}
에서
//1 
에서 컴파일할 수 있는 코드는 다음과 같습니다.
A. public int method(){return 0;}
B. void method(){}
C. void method(int n){}
D. private void method(){}
ABCD
6.
package day14;
 
public class Demo14_3 {
        public static void main(String[] args) {
                Student stu=new Student("  ",23,"  ","214000","1381402222");
                System.out.println(stu.getName());
                System.out.println(stu.getAge());
                System.out.println(stu.getAdress());
                System.out.println(stu.getZipCode());
                System.out.println(stu.getMobile());
                stu.getPostAddress();
        }
}
class Student{
        private String name;
        private int age;
        private String adress;
        private String zipCode;
        private String mobile;
        public Student(String name,int age,String adress,String zipCode,String mobile){
                this.name=name;
                this.age=age;
                this.adress=adress;
                this.zipCode=zipCode;
                this.mobile=mobile;
        }
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getAge() {
                return age;
        }
        public void setAge(int age) {
                this.age = age;
        }
        public String getAdress() {
                return adress;
        }
        public void setAdress(String adress) {
                this.adress = adress;
        }
        public String getZipCode() {
                return zipCode;
        }
        public void setZipCode(String zipCode) {
                this.zipCode = zipCode;
        }
        public String getMobile() {
                return mobile;
        }
        public void setMobile(String mobile) {
                this.mobile = mobile;
        }
        public void getPostAddress(){
                System.out.println(adress+" "+zipCode);
        }
}

7.
class Account{
        private int id;
        private double balance;
        private String password;
        public int getId() {
                return id;
        }
        public void setId(int id) {
                this.id = id;
        }
        public double getBalance() {
                return balance;
        }
        public void setBalance(double balance) {
                this.balance = balance;
        }
        public String getPassword() {
                return null;
        }
        public void setPassword(String password) {
                if(password.length()!=6){
                        return;
                }
                this.password = password;
        }
}
 
class SaveAccount extends Account{
        private double interestRate;
 
        public double getInterestRate() {
                return interestRate;
        }
 
        public void setInterestRate(double interestRate) {
                if(interestRate>0 && interestRate<10/100){
                        this.interestRate = interestRate;
                }
        }
}
 
class CreditAccount extends Account{
        private double creditLine;
}

8
동물마다 다른 명칭
        1
동물류 정의
                
이름도 있고, 먹고 부르는 방법도 있어요.
        2
개가 동물을 계승하여 부류를 다시 먹고 짖는 방법을 정의하다
        3
고양이가 동물을 계승하여 부류를 다시 먹고 짖는 방법을 정의한다
   
요구사항: 주 함수를 통해 관련 함수와 속성 정보 정보를 호출합니다
class Animal {
        private String name;
 
        public String getName() {
                return name;
        }
 
        public void setName(String name) {
                this.name = name;
        }
         
        public void eat(){
                System.out.println(name+"   ");
        }
         
        public void call(){
                System.out.println(name+"  ...");
        }
}
 
class Dog extends Animal{
        @Override
        public void eat() {
                System.out.println(super.getName()+"    ");
        }
         
        @Override
        public void call() {
                System.out.println(super.getName()+"  ....");
        }
}
 
class Cat extends Animal{
        @Override
        public void eat() {
                System.out.println(super.getName()+"    ");
        }
         
        @Override
        public void call() {
                System.out.println(super.getName()+"  ....");
        }
}
 
public class TestAnimal{
        public static void main(String[] args) {
                Animal a1 = new Dog();
                a1.setName(" ");
                a1.eat();
                a1.call();
                System.out.println();
                Animal a2 = new Dog();
                a2.setName(" ");
                a2.eat();
                a2.call();
        }
}

9
, 회사의 직원은 다음과 같은 몇 가지 유형으로 나뉜다.
   Employee
: 이것은 모든 직원의 부류입니다.
   
속성: 직원의 성명과 생일 월.
   
방법: getSalary(int month)
매개 변수 월에 따라 임금을 확정하고, 만약 이 달 직원이 생일을 보낸다면, 회사는 추가로 장려할 것이다
100
원.
   SalariedEmployee
:
Employee
고정 임금을 받는 직원.
   
속성:월급
   HourlyEmployee
:
Employee
시간당 월급을 받는 직원, 매달 초과 근무
160
시간
1.5
갑절 임금 지급
   
속성: 시간당 임금, 매달 근무 시간
   SalesEmployee
:
Employee
의 자류, 판매원, 임금은 월 매출액과 공제율에 의해 결정된다
   
속성: 월 매출액, 공제율
   BasePlusSalesEmployee
:
SalesEmployee
의 자류, 고정 기본급이 있는 판매원, 임금은 기본급에 판매 공제 부분을 더한다
   
속성:기본급.
   
실현: 1
, 이역봉 고정직원, 월급
3000
생일
2
일하다
180
시간, 월급 얼마 받니
         2
시간당
25
일하다
180
시간, 월급 얼마 받니
         3
, 링컨 판매원 월 매출액
30
공제금
0.3% 
월급을 받다
         4
햇빛 고정 기본급 판매원 기본급
1500 
판매
20
공제금
0.2% 
월급을 받다
public class TestEmployee {
 
        public static void main(String[] args) {
                SalariedEmployee se = new SalariedEmployee();
                se.setName("   ");
                se.setSalary(3000);
                se.setBirthMonth(2);
                se.getSalary(2);
 
                HourlyEmployee he = new HourlyEmployee();
                he.setName("   ");
                he.setHourSalary(25);
                he.setHours(180);
                he.getSalary();
 
                SalesEmployee sae = new SalesEmployee();
                sae.setName("  ");
                sae.setMonthsales(300000);
                sae.setRoyalRate(0.003);
                sae.getSalary();
 
                BasePlusSalesEmployee bse = new BasePlusSalesEmployee();
                bse.setName("  ");
                bse.setBaseSalary(1500);
                bse.setMonthsales(200000);
                bse.setRoyalRate(0.002);
                bse.getSalary();
        }
}
 
class Employee {
        String name;
        int birthMonth;
        double salary;
 
        public String getName() {
                return name;
        }
 
        public void setName(String name) {
                this.name = name;
        }
 
        public int getBirthMonth() {
                return birthMonth;
        }
 
        public void setBirthMonth(int birthMonth) {
                this.birthMonth = birthMonth;
        }
 
        public void setSalary(double salary) {
                this.salary = salary;
        }
 
        public void getSalary(int month) {
                if (birthMonth == month) {
                        System.out.println(name + "    " + (salary + 100));
                }
        }
}
 
class SalariedEmployee extends Employee {
 
}
 
class HourlyEmployee extends Employee {
        double hourSalary;
        double hours;
        double salary;
 
        public double getHourSalary() {
                return hourSalary;
        }
 
        public void setHourSalary(double hourSalary) {
                this.hourSalary = hourSalary;
        }
 
        public double getHours() {
                return hours;
        }
 
        public void setHours(double hours) {
                this.hours = hours;
        }
 
        public void setSalary(double salary) {
                this.salary = salary;
        }
 
        public void getSalary() {
                if (hours > 160) {
                        System.out.println(name + "   " + (hourSalary * 160 + ((hours - 160) * hourSalary * 1.5)));
                } else {
                        System.out.println(name + "   " + hourSalary * hours);
                }
 
        }
}
 
class SalesEmployee extends Employee {
        double monthsales;
        double royalRate;
 
        public double getMonthsales() {
                return monthsales;
        }
 
        public void setMonthsales(double monthsales) {
                this.monthsales = monthsales;
        }
 
        public double getRoyalRate() {
                return royalRate;
        }
 
        public void setRoyalRate(double royalRate) {
                this.royalRate = royalRate;
 
        }
 
        public void setSalary(double salary) {
                this.salary = salary;
        }
 
        public void getSalary() {
                System.out.println(name + "   " + monthsales * royalRate);
        }
 
}
 
class BasePlusSalesEmployee extends SalesEmployee {
        double baseSalary;
 
        public double getBaseSalary() {
                return baseSalary;
        }
 
        public void setBaseSalary(double baseSalary) {
                this.baseSalary = baseSalary;
        }
 
        public void getSalary() {
                System.out.println(name + "   " + baseSalary + monthsales * royalRate);
        }
}

좋은 웹페이지 즐겨찾기